diff --git a/Hcs.Client/ClientApi/DataTypes/ГисАдресныйОбъект.cs b/Hcs.Client/ClientApi/DataTypes/ГисАдресныйОбъект.cs
deleted file mode 100644
index f610c69..0000000
--- a/Hcs.Client/ClientApi/DataTypes/ГисАдресныйОбъект.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System;
-
-namespace Hcs.ClientApi.DataTypes
-{
- ///
- /// Информация о зданиях и помещениях в зданиях (объектах жилого фонда),
- /// которые связаны с договором (в договоре имеются Лицевые Счета в
- /// указанных объектах)
- ///
- public class ГисАдресныйОбъект
- {
- public Guid ГуидДоговора;
- public Guid ГуидВерсииДоговора;
- public Guid ГуидЗданияФиас;
- public Guid ГуидАдресногоОбъекта;
-
- public class ИзвестныеТипыЗдания
- {
- public const string MKD = "MKD";
- public const string ZHD = "ZHD";
- public const string ZHDBlockZastroyki = "ZHDBlockZastroyki";
- }
-
- public string ТипЗдания;
- public string НомерПомещения;
- public string НомерКомнаты;
-
- public bool СвязанСДоговором(ГисДоговор договор) => договор != null && договор.ГуидДоговора == ГуидДоговора;
-
- public override string ToString()
- {
- return $"Тип=[{ТипЗдания}] ЗданиеФиас=[{ГуидЗданияФиас}] Объект[{ГуидАдресногоОбъекта}] Помещ[{НомерПомещения}] Комн[{НомерКомнаты}]";
- }
- }
-}
diff --git a/Hcs.Client/ClientApi/DataTypes/ГисДоговор.cs b/Hcs.Client/ClientApi/DataTypes/ГисДоговор.cs
deleted file mode 100644
index 504fefc..0000000
--- a/Hcs.Client/ClientApi/DataTypes/ГисДоговор.cs
+++ /dev/null
@@ -1,140 +0,0 @@
-using Newtonsoft.Json;
-using System;
-
-namespace Hcs.ClientApi.DataTypes
-{
- ///
- /// Договор с ресурсоснабжающей организацией
- ///
- public class ГисДоговор
- {
- public Guid ГуидДоговора;
- public Guid ГуидВерсииДоговора;
- public string НомерВерсии;
-
- public ГисСостояниеДоговора СостояниеДоговора;
- public ГисСтатусВерсииДоговора СтатусВерсииДоговора;
-
- public ГисТипДоговораРСО ТипДоговораРСО;
- public string НомерДоговора;
- public DateTime? ДатаЗаключения;
- public DateTime? ДатаВступленияВСилу;
-
- public bool НачисленияРазмещаетРСО;
- public bool ПриборыРазмещаетРСО;
-
- public ГисКонтрагент Контрагент;
-
- public ГисПредметДоговора[] ПредметыДоговора;
-
- public ГисПриложение[] ПриложенияДоговора;
-
- [JsonIgnore]
- public bool ЭтоДоговорИКУ => (ТипДоговораРСО == ГисТипДоговораРСО.НеПубличныйИлиНеНежилые);
-
- [JsonIgnore]
- public bool ЭтоДоговорНежилогоПомещения => (ТипДоговораРСО == ГисТипДоговораРСО.ПубличныйИлиНежилые);
-
- [JsonIgnore]
- public bool ЭтоПроектДоговора => (СтатусВерсииДоговора == ГисСтатусВерсииДоговора.Проект);
-
- [JsonIgnore]
- public bool Расторгнут => (СтатусВерсииДоговора == ГисСтатусВерсииДоговора.Расторгнут);
-
- [JsonIgnore]
- public bool ИмеетГуидДоговора => (ГуидДоговора != default);
-
- [JsonIgnore]
- public bool ПриниматьИзГисНаАнализ
- {
- get
- {
- return СтатусВерсииДоговора switch
- {
- // TODO: Проверить комментирование этой строчки
- //ГисСтатусВерсииДоговора.Проект => false, // С 15.11.2024 принимаем проекты
- ГисСтатусВерсииДоговора.Аннулирован => false,
- ГисСтатусВерсииДоговора.Расторгнут => false,
- _ => true
- };
- }
- }
-
- public override string ToString()
- {
- return $"Договор №{НомерДоговора} Тип={ТипДоговораРСО}" +
- $" Статус={СтатусВерсииДоговора} Состояние={СостояниеДоговора}" +
- $" Заключен={HcsUtil.FormatDate(ДатаЗаключения)}" +
- $" №Версии={НомерВерсии} ГуидДог={ГуидДоговора}" +
- $" ГуидВерсии={ГуидВерсииДоговора}";
- }
- }
-
- public enum ГисТипДоговораРСО
- {
- ///
- /// Договор не является публичным и/или присутствует заключенный на бумажном
- /// носителе (электронной форме) и/или не заключен в отношении нежилых помещений
- /// в многоквартирных домах (IsContract в терминах HCS)
- ///
- НеПубличныйИлиНеНежилые,
-
- ///
- /// Договор является публичным и/или отсутствует заключенный на бумажном носителе
- /// (в электронной форме) и/или заключен в отношении нежилых помещений в
- /// многоквартирных домах (IsNotContract в терминах HCS)
- ///
- ПубличныйИлиНежилые
- }
-
- public enum ГисСостояниеДоговора
- {
- НеВступилВСилу, // NotTakeEffect
- Действующий, // Proceed
- ИстекСрокДействия // Expired
- }
-
- public enum ГисСтатусВерсииДоговора
- {
- Размещен, // Posted
- Расторгнут, // Terminated
- Проект, // Draft
- Аннулирован // Annul
- }
-
- public class ГисПредметДоговора
- {
- // Вид КУ. Ссылка на НСИ "Вид коммунальной услуги" (реестровый номер 3)
- public string КодНсиУслуги;
- public Guid ГуидНсиУслуги;
- public string ИмяНсиУслуги;
-
- // Коммунальный ресурс. Ссылка на НСИ "Тарифицируемый ресурс" (реестровый номер 239)
- public string КодНсиРесурса;
- public Guid ГуидНсиРесурса;
- public string ИмяНсиРесурса;
- }
-
- public class ГисПриложение
- {
- ///
- /// Имя файла приложения
- ///
- public string ИмяПриложения;
-
- ///
- /// Пояснение к файлу приложения
- ///
- public string ОписаниеПриложения;
-
- ///
- /// ГУИД файла приложения из ext-bus-file-store-service
- ///
- public Guid ГуидПриложения;
-
- ///
- /// Хэш файла приложения в устаревшем стандарте "ГОСТ Р 34.11-94" в Binhex
- ///
- public string ХэшПриложения;
- }
-}
diff --git a/Hcs.Client/ClientApi/DataTypes/ГисДоговорыИПриборы.cs b/Hcs.Client/ClientApi/DataTypes/ГисДоговорыИПриборы.cs
deleted file mode 100644
index 774f55d..0000000
--- a/Hcs.Client/ClientApi/DataTypes/ГисДоговорыИПриборы.cs
+++ /dev/null
@@ -1,197 +0,0 @@
-using Newtonsoft.Json;
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-
-namespace Hcs.ClientApi.DataTypes
-{
- ///
- /// Сборный класс для получения сразу всех договоров, их лицевых счетов
- /// и приборов учета привязанных к лицевым счетам договоров
- ///
- public class ГисДоговорыИПриборы
- {
- public DateTime ДатаНачалаСборки;
- public DateTime ДатаКонцаСборки;
-
- ///
- /// Договоры ресурсоснабжения
- ///
- public List<ГисДоговор> ДоговорыРСО = new List<ГисДоговор>();
-
- public List<ГисАдресныйОбъект> АдресаОбъектов = new List<ГисАдресныйОбъект>();
-
- public List<ГисЗдание> Здания = new List<ГисЗдание>();
-
- public List<ГисЛицевойСчет> ЛицевыеСчета = new List<ГисЛицевойСчет>();
-
- public List<ГисПриборУчета> ПриборыУчета = new List<ГисПриборУчета>();
-
- public ГисДоговор НайтиДоговорПоНомеру(string номерДоговора)
- => ДоговорыРСО.FirstOrDefault(x => x.НомерДоговора == номерДоговора);
-
- public bool ЭтотЛицевойСчетСвязанСДоговорами(ГисЛицевойСчет лс)
- {
- return ДоговорыРСО.Any(договор => лс.СвязанСДоговором(договор));
- }
-
- public ГисЗдание НайтиЗданиеПомещения(Guid гуидПомещения)
- {
- foreach (var здание in Здания)
- {
- foreach (var помещение in здание.Помещения)
- {
- if (помещение.ГуидПомещения == гуидПомещения) return здание;
- }
- }
-
- return null;
- }
-
- public ГисЗдание НайтиЗданиеЛицевогоСчета(ГисЛицевойСчет лс)
- {
- if (лс.Размещения == null) return null;
-
- foreach (var размещение in лс.Размещения)
- {
- if (размещение.ГуидПомещения == null) continue;
- var здание = НайтиЗданиеПомещения((Guid)размещение.ГуидПомещения);
- if (здание != null) return здание;
- }
-
- return null;
- }
-
- public void УдалитьЛицевыеСчетаЗдания(Guid гуидЗданияФиас)
- {
- var здание = Здания.FirstOrDefault(x => x.ГуидЗданияФиас == гуидЗданияФиас);
- if (здание == null || здание.Помещения == null) return;
-
- var лсДляУдаления = new List<ГисЛицевойСчет>();
- var гуидыПомещенийЗдания = new HashSet(здание.Помещения.Select(x => x.ГуидПомещения));
-
- foreach (var лс in ЛицевыеСчета)
- {
- if (лс.Размещения == null) continue;
- foreach (var размещениеЛС in лс.Размещения)
- {
- if (размещениеЛС.ГуидПомещения == null) continue;
- if (гуидыПомещенийЗдания.Contains((Guid)размещениеЛС.ГуидПомещения))
- {
- лсДляУдаления.Add(лс);
- break;
- }
- }
- }
-
- foreach (var лсУдалить in лсДляУдаления)
- ЛицевыеСчета.Remove(лсУдалить);
- }
-
- public int ЗаменитьЛицевыеСчетаЗданияВЛокальномСнимке(
- Guid гуидЗданияФиас, IEnumerable<ГисЛицевойСчет> лицевые)
- {
- УдалитьЛицевыеСчетаЗдания(гуидЗданияФиас);
-
- var живые = лицевые.Where(лс => лс.ДействуетСейчас && ЭтотЛицевойСчетСвязанСДоговорами(лс));
- ЛицевыеСчета.AddRange(живые);
- return живые.Count();
- }
-
- public bool ЭтотПриборСвязанСЛицевымиСчетами(ГисПриборУчета прибор)
- {
- return ЛицевыеСчета.Any(лс => прибор.СвязанСЛицевымСчетом(лс));
- }
-
- public IEnumerable<ГисАдресныйОбъект> ДатьАдресаОбъектовДоговора(ГисДоговор договор)
- {
- return АдресаОбъектов.Where(x => x.СвязанСДоговором(договор));
- }
-
- public IEnumerable<ГисПриборУчета> ДатьПриборыУчетаДоговора(ГисДоговор договор)
- {
- var адресаДоговора = ДатьАдресаОбъектовДоговора(договор).ToArray();
- var лицевыеДоговора = ЛицевыеСчета.Where(x => x.СвязанСДоговором(договор)).ToArray();
-
- var приборы = new List<ГисПриборУчета>();
- foreach (var прибор in ПриборыУчета)
- {
- if (прибор == null) continue;
-
- if (договор.ЭтоДоговорИКУ)
- {
- foreach (var адрес in адресаДоговора)
- {
- if (прибор.СвязанСАдреснымОбъектом(адрес)) приборы.Add(прибор);
- }
- }
-
- if (договор.ЭтоДоговорНежилогоПомещения)
- {
- foreach (var лицевой in лицевыеДоговора)
- {
- if (прибор.СвязанСЛицевымСчетом(лицевой)) приборы.Add(прибор);
- }
- }
- }
-
- return приборы;
- }
-
- public IEnumerable<ГисПомещение> ДатьПомещенияАдресногоОбъекта(ГисАдресныйОбъект адрес)
- {
- var здание = Здания.FirstOrDefault(x => x.ГуидЗданияФиас == адрес.ГуидЗданияФиас);
- if (здание == null) return new List<ГисПомещение>();
- return здание.Помещения;
- }
-
- public IEnumerable<ГисПриборУчета> ДатьПриборыУчетаЛицевогоСчета(ГисЛицевойСчет лс)
- {
- return ПриборыУчета.Where(x => x.СвязанСЛицевымСчетом(лс));
- }
-
- public ГисЗданиеПомещение НайтиПомещениеЛицевогоСчета(ГисЛицевойСчет лс)
- {
- foreach (var размещение in лс.Размещения)
- {
- foreach (var здание in Здания)
- {
- if (здание.Помещения == null) continue;
- foreach (var помещение in здание.Помещения)
- {
- if (помещение.ГуидПомещения == размещение.ГуидПомещения)
- {
- return new ГисЗданиеПомещение(здание, помещение);
- }
- }
- }
- }
- return new ГисЗданиеПомещение(null, null);
- }
-
- public static ГисДоговорыИПриборы ПрочитатьФайлJson(string jsonFileName)
- {
- using (StreamReader file = File.OpenText(jsonFileName))
- {
- JsonSerializer serializer = new JsonSerializer();
- return (ГисДоговорыИПриборы)serializer.Deserialize(file, typeof(ГисДоговорыИПриборы));
- }
- }
-
- public void ЗаписатьФайлJson(string jsonFileName)
- {
- using (StreamWriter file = File.CreateText(jsonFileName))
- {
- JsonSerializer serializer = new JsonSerializer();
- serializer.Serialize(file, this);
- }
- }
-
- public override string ToString()
- {
- return $"ДоговорыРСО={ДоговорыРСО.Count} Адреса={АдресаОбъектов.Count}" +
- $" ЛС={ЛицевыеСчета.Count} ПУ={ПриборыУчета.Count}";
- }
- }
-}
diff --git a/Hcs.Client/ClientApi/DataTypes/ГисЗдание.cs b/Hcs.Client/ClientApi/DataTypes/ГисЗдание.cs
deleted file mode 100644
index 01a72c7..0000000
--- a/Hcs.Client/ClientApi/DataTypes/ГисЗдание.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System;
-using System.Linq;
-
-namespace Hcs.ClientApi.DataTypes
-{
- ///
- /// Дом ГИС ЖКХ
- ///
- public class ГисЗдание
- {
- public ГисТипДома ТипДома;
- public Guid ГуидЗданияФиас;
- public string НомерДомаГис;
-
- public ГисПомещение[] Помещения;
-
- public override string ToString()
- {
- return $"{ТипДома} дом №ГИС={НомерДомаГис} Помещения={Помещения.Count()}";
- }
- }
-
- public enum ГисТипДома { Многоквартирный, Жилой };
-}
diff --git a/Hcs.Client/ClientApi/DataTypes/ГисЗданиеПомещение.cs b/Hcs.Client/ClientApi/DataTypes/ГисЗданиеПомещение.cs
deleted file mode 100644
index f95038f..0000000
--- a/Hcs.Client/ClientApi/DataTypes/ГисЗданиеПомещение.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-namespace Hcs.ClientApi.DataTypes
-{
- public record struct ГисЗданиеПомещение(ГисЗдание Здание, ГисПомещение Помещение)
- {
- public bool Пустое => (Здание == null || Помещение == null);
- public bool Заполнено => !Пустое;
- }
-}
diff --git a/Hcs.Client/ClientApi/DataTypes/ГисКонтрагент.cs b/Hcs.Client/ClientApi/DataTypes/ГисКонтрагент.cs
deleted file mode 100644
index 75d3387..0000000
--- a/Hcs.Client/ClientApi/DataTypes/ГисКонтрагент.cs
+++ /dev/null
@@ -1,72 +0,0 @@
-using Newtonsoft.Json;
-using System;
-using System.Linq;
-
-namespace Hcs.ClientApi.DataTypes
-{
- ///
- /// Сведения о контрагенте договора РСО
- ///
- public class ГисКонтрагент
- {
- public ГисТипКонтрагента ТипКонтрагента;
-
- ///
- /// ГУИД из реестра организаций ГИС ЖКХ
- ///
- public Guid? ГуидОрганизации;
-
- ///
- /// ГУИД версии организации из реестра организаций ГИС ЖКХ необходим
- /// для размещения Лицевого счета
- ///
- public Guid? ГуидВерсииОрганизации;
-
- ///
- /// Сведения об индивидуальном физическом лице
- ///
- public ГисИндивид Индивид;
- }
-
- public enum ГисТипКонтрагента
- {
- НеУказано,
- ВладелецПомещения,
- УправляющаяКомпания
- }
-
- public class ГисИндивид
- {
- public string Фамилия;
- public string Имя;
- public string Отчество;
- public string СНИЛС;
- public string НомерДокумента;
- public string СерияДокумента;
- public DateTime? ДатаДокумента;
-
- [JsonIgnore]
- public bool СНИЛСЗаполнен
- => !string.IsNullOrEmpty(СНИЛС);
-
- [JsonIgnore]
- public string СНИЛСТолькоЦифры
- => СНИЛСЗаполнен ? string.Concat(СНИЛС.Where(char.IsDigit)) : null;
-
- [JsonIgnore]
- public bool СНИЛСЗаполненВернойДлины
- => (СНИЛСЗаполнен && СНИЛСТолькоЦифры.Length == 11);
-
- public void ПроверитьЗаполнениеСНИЛС()
- {
- if (!СНИЛСЗаполненВернойДлины)
- throw new HcsException($"В СНИЛС контрагента ФЛ должно быть указано 11 цифр: {СНИЛС}");
- }
-
- public void ПроверитьЗаполнениеФИО()
- {
- if (string.IsNullOrEmpty(Фамилия)) throw new HcsException("Не заполнена Фамилия контрагента ФЛ");
- if (string.IsNullOrEmpty(Имя)) throw new HcsException("Не заполнено Имя контрагента ФЛ");
- }
- }
-}
diff --git a/Hcs.Client/ClientApi/DataTypes/ГисЛицевойСчет.cs b/Hcs.Client/ClientApi/DataTypes/ГисЛицевойСчет.cs
deleted file mode 100644
index e8509f9..0000000
--- a/Hcs.Client/ClientApi/DataTypes/ГисЛицевойСчет.cs
+++ /dev/null
@@ -1,112 +0,0 @@
-using Newtonsoft.Json;
-using System;
-using System.Linq;
-using System.Text;
-
-namespace Hcs.ClientApi.DataTypes
-{
- ///
- /// Лицевой счет из ГИС ЖКХ имеет номер единого лицевого счета (ЕЛС)
- /// и выдается на каждую точку поставки в жилом доме для договора
- /// по нежилым помещениям
- ///
- public class ГисЛицевойСчет
- {
- public Guid ГуидЛицевогоСчета;
- public string НомерЛицевогоСчета;
- public string НомерЕЛС;
-
- public DateTime? ДатаСоздания;
- public DateTime? ДатаЗакрытия;
- public string КодНсиПричиныЗакрытия;
- public string ИмяПричиныЗакрытия;
-
- public decimal? ПолнаяПлощадь;
- public decimal? ЖилаяПлощадь;
- public string КодЖКУ;
-
- public ГисРазмещениеЛС[] Размещения;
- public ГисОснованиеЛС[] Основания;
-
- public bool СвязанСДоговором(ГисДоговор договор)
- {
- if (договор != null && Основания != null && Основания.Any(
- основание => основание.ГуидДоговора == договор.ГуидВерсииДоговора ||
- основание.ГуидДоговора == договор.ГуидДоговора ||
- string.Compare(основание.НомерДоговора, договор.НомерДоговора) == 0)) return true;
- return false;
- }
-
- [JsonIgnore]
- public bool ДействуетСейчас => (ДатаЗакрытия == null);
-
- [JsonIgnore]
- public string ОписаниеРазмещений
- {
- get
- {
- var accomod = new StringBuilder();
- foreach (var x in Размещения) accomod.Append($"[{x}]");
- return accomod.ToString();
- }
- }
-
- [JsonIgnore]
- public string ОписаниеОснований
- {
- get
- {
- if (Основания == null) return null;
- var reasons = new StringBuilder();
- foreach (var x in Основания) reasons.Append($"[{x}]");
- return reasons.ToString();
- }
- }
-
- public override string ToString()
- {
- return $"ЛС №{НомерЛицевогоСчета} ЕЛС={НомерЕЛС}" +
- $" Создан={HcsUtil.FormatDate(ДатаСоздания)}" +
- $" Закрыт={HcsUtil.FormatDate(ДатаЗакрытия)}" +
- $" Размещения={ОписаниеРазмещений}" +
- $" Основания={ОписаниеОснований}";
- }
- }
-
- ///
- /// Лицевой счет может быть привязан к нескольким размещениям.
- /// Каждое размещение может быть или в здании, или в жилой комнате или в помещении
- ///
- public class ГисРазмещениеЛС
- {
- public Guid? ГуидЗдания;
- public Guid? ГуидПомещения;
- public Guid? ГуидЖилойКомнаты;
- public decimal? ПроцентДоли;
-
- public override string ToString()
- {
- if (ГуидЗдания != null) return $"Здание={ГуидЗдания}";
- if (ГуидПомещения != null) return $"Помещение={ГуидПомещения}";
- if (ГуидЖилойКомнаты != null) return $"ЖилКомната={ГуидЖилойКомнаты}";
- return "";
- }
- }
-
- public enum ГисТипОснованияЛС { ДоговорРСО, Соцнайм, Договор }
-
- ///
- /// Основание создания лицевого счета (договор на основании которого открыт ЛС)
- ///
- public class ГисОснованиеЛС
- {
- public ГисТипОснованияЛС ТипОснованияЛС;
- public Guid ГуидДоговора;
- public string НомерДоговора;
-
- public override string ToString()
- {
- return $"{ТипОснованияЛС}={ГуидДоговора}";
- }
- }
-}
diff --git a/Hcs.Client/ClientApi/DataTypes/ГисОрганизация.cs b/Hcs.Client/ClientApi/DataTypes/ГисОрганизация.cs
deleted file mode 100644
index d554a3c..0000000
--- a/Hcs.Client/ClientApi/DataTypes/ГисОрганизация.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-using Newtonsoft.Json;
-using System;
-
-namespace Hcs.ClientApi.DataTypes
-{
- ///
- /// Сведения из реестра оргнаизации ГИС ЖКХ
- ///
- public class ГисОрганизация
- {
- public Guid ГуидОрганизации;
-
- public Guid ГуидВерсииОрганизации;
-
- public ГисТипОрганизации ТипОрганизации;
-
- public string КраткоеИмяОрганизации;
-
- public string ПолноеИмяОрганизации;
-
- public bool Действующая;
-
- public string ИНН;
-
- public string КПП;
-
- public string ОГРН;
-
- public string ОКОПФ;
-
- public string Фамилия;
-
- public string Имя;
-
- public string Отчество;
-
- public string ЮридическийАдрес;
-
- public DateTime? ДатаЛиквидации;
-
- [JsonIgnore]
- public const int ДлинаОГРН = 13;
-
- [JsonIgnore]
- public const int ДлинаОГРНИП = 15;
-
- public override string ToString()
- {
- string имя = ТипОрганизации == ГисТипОрганизации.ИП ?
- $"ИП {Фамилия} {Имя} {Отчество}" : КраткоеИмяОрганизации;
- return $"{ТипОрганизации}: [{имя}] ИНН={ИНН} КПП={КПП} Действующая={Действующая}" +
- $" ГУИД={ГуидОрганизации} Версия={ГуидВерсииОрганизации}";
- }
- }
-
- public enum ГисТипОрганизации { НетУказано, ЮЛ, ИП, Филиал, Иностранный }
-}
diff --git a/Hcs.Client/ClientApi/DataTypes/ГисПоказания.cs b/Hcs.Client/ClientApi/DataTypes/ГисПоказания.cs
deleted file mode 100644
index f2e6ab2..0000000
--- a/Hcs.Client/ClientApi/DataTypes/ГисПоказания.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-using System;
-using System.Text;
-
-namespace Hcs.ClientApi.DataTypes
-{
- public class ГисПоказания
- {
- public DateTime ДатаСнятия;
- public string ПоказанияТ1;
- public string ПоказанияТ2;
- public string ПоказанияТ3;
-
- public override string ToString()
- {
- var buf = new StringBuilder();
-
- if (!string.IsNullOrEmpty(ПоказанияТ1))
- {
- buf.AppendFormat("Т1={0}", ПоказанияТ1);
- }
-
- if (!string.IsNullOrEmpty(ПоказанияТ2))
- {
- if (buf.Length > 0) buf.Append(" ");
- buf.AppendFormat("Т2={0}", ПоказанияТ2);
- }
-
- if (!string.IsNullOrEmpty(ПоказанияТ3))
- {
- if (buf.Length > 0) buf.Append(" ");
- buf.AppendFormat("Т3={0}", ПоказанияТ3);
- }
-
- if (ДатаСнятия != default)
- {
- if (buf.Length > 0) buf.Append(" ");
- buf.AppendFormat("на {0:d}", ДатаСнятия);
- }
-
- return buf.ToString();
- }
- }
-}
diff --git a/Hcs.Client/ClientApi/DataTypes/ГисПолеЭлементаСправочника.cs b/Hcs.Client/ClientApi/DataTypes/ГисПолеЭлементаСправочника.cs
deleted file mode 100644
index e57471b..0000000
--- a/Hcs.Client/ClientApi/DataTypes/ГисПолеЭлементаСправочника.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-namespace Hcs.ClientApi.DataTypes
-{
- public class ГисПолеЭлементаСправочника
- {
- public string наименование;
- public string значение;
- }
-}
diff --git a/Hcs.Client/ClientApi/DataTypes/ГисПомещение.cs b/Hcs.Client/ClientApi/DataTypes/ГисПомещение.cs
deleted file mode 100644
index e8f3eb8..0000000
--- a/Hcs.Client/ClientApi/DataTypes/ГисПомещение.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using System;
-
-namespace Hcs.ClientApi.DataTypes
-{
- ///
- /// Жилое или нежилое момещение в доме ГИС ЖКХ
- ///
- public class ГисПомещение
- {
- public Guid ГуидПомещения;
- public bool ЭтоЖилоеПомещение;
- public string НомерПомещения;
- public DateTime? ДатаПрекращения;
- public string Аннулирование;
-
- public override string ToString()
- {
- return $"ГисПомещение={НомерПомещения} Жилое={ЭтоЖилоеПомещение} Guid={ГуидПомещения} Прекращено={ДатаПрекращения} Аннул={Аннулирование}";
- }
- }
-}
diff --git a/Hcs.Client/ClientApi/DataTypes/ГисПриборУчета.cs b/Hcs.Client/ClientApi/DataTypes/ГисПриборУчета.cs
deleted file mode 100644
index 8764339..0000000
--- a/Hcs.Client/ClientApi/DataTypes/ГисПриборУчета.cs
+++ /dev/null
@@ -1,102 +0,0 @@
-using Newtonsoft.Json;
-using System;
-using System.Linq;
-
-namespace Hcs.ClientApi.DataTypes
-{
- ///
- /// Прибор учета из ГИС ЖКХ может быть привязан к списку зданий (ОДПУ)
- /// или к списку Лицевых счетов (все виды кроме ОДПУ)
- ///
- public class ГисПриборУчета
- {
- public Guid ГуидПрибораУчета;
- public Guid ГуидВерсииПрибора;
- public string НомерПрибораУчетаГис;
-
- public DateTime? ДатаРазмещенияВерсии;
- public Guid ГуидВладельцаПрибора;
-
- public ГисСтатусПрибораУчета СтатусПрибораУчета;
- public ГисВидПрибораУчета ВидПрибораУчета;
-
- public string ЗаводскойНомер;
- public string МодельПрибораУчета;
-
- [JsonIgnore]
- public bool КоэффициентТрансформацииУказан => (КоэффициентТрансформации > 0);
- public decimal КоэффициентТрансформации;
-
- public string ПоказаниеТ1;
- public string ПоказаниеТ2;
- public string ПоказаниеТ3;
-
- // TODO: Добавить эти комментарии как XML-комментарии
- public DateTime? ДатаИзготовления; // Обязательно при импорте
- public DateTime? ДатаУстановки;
- public DateTime? ДатаВводаВЭксплуатацию; // Обязательно кроме ОДПУ
- public DateTime? ДатаПоследнейПоверки; // Обязательно для ОДПУ
-
- public bool РежимДистанционногоОпроса; // Признак наличия ИСУ
- public string ОписаниеДистанционногоОпроса; // Наименование ИСУ
-
- public Guid[] ГуидыЗданийФиас;
- public Guid[] ГуидыЛицевыхСчетов;
- public Guid[] ГуидыПомещений;
- public Guid[] ГуидыЖилыхКомнат;
-
- [JsonIgnore]
- public bool ЭтоАктивный => (СтатусПрибораУчета == ГисСтатусПрибораУчета.Активный);
-
- [JsonIgnore]
- public bool ЭтоАрхивный => (СтатусПрибораУчета == ГисСтатусПрибораУчета.Архивный);
-
- [JsonIgnore]
- public bool ЭтоОДПУ => (ВидПрибораУчета == ГисВидПрибораУчета.ОДПУ);
-
- [JsonIgnore]
- public bool ЭтоНежилоеПомещение => (ВидПрибораУчета == ГисВидПрибораУчета.НежилоеПомещение);
-
- [JsonIgnore]
- public bool ЭтоПриборЮЛ => ЭтоОДПУ || ЭтоНежилоеПомещение;
-
- public bool СвязанСЛицевымСчетом(ГисЛицевойСчет лс)
- {
- if (лс == null || ГуидыЛицевыхСчетов == null || ГуидыЛицевыхСчетов.Length == 0) return false;
- if (ГуидыЛицевыхСчетов.Length == 1) return (ГуидыЛицевыхСчетов[0] == лс.ГуидЛицевогоСчета);
- return ГуидыЛицевыхСчетов.Contains(лс.ГуидЛицевогоСчета);
- }
-
- public bool СвязанСАдреснымОбъектом(ГисАдресныйОбъект адрес)
- {
- // TODO: Для лицевых счетов здесь надо тестировать ГУИД помещения
- if (адрес == null || ГуидыЗданийФиас == null || ГуидыЗданийФиас.Length == 0) return false;
- if (ГуидыЗданийФиас.Length == 1) return ГуидыЗданийФиас[0] == адрес.ГуидЗданияФиас;
- return ГуидыЗданийФиас.Contains(адрес.ГуидЗданияФиас);
- }
-
- public bool ЗаполненГуидЗданияФиас => (ГуидыЗданийФиас != null && ГуидыЗданийФиас.Length > 0);
-
- public Guid? ОдинГуидЗданияФиас => (ЗаполненГуидЗданияФиас ? ГуидыЗданийФиас[0] : null);
-
- public override string ToString()
- {
- int числоЛС = ГуидыЛицевыхСчетов != null ? ГуидыЛицевыхСчетов.Length : 0;
- int числоДомов = ГуидыЗданийФиас != null ? ГуидыЗданийФиас.Length : 0;
- return $"{ВидПрибораУчета} {СтатусПрибораУчета} №{ЗаводскойНомер} [{МодельПрибораУчета}]" +
- $"Гуид={ГуидПрибораУчета} ЧислоЛС={числоЛС} ЧислоДомов={числоДомов}";
- }
- }
-
- public enum ГисВидПрибораУчета
- {
- ЖилоеПомещение,
- НежилоеПомещение,
- ОДПУ,
- ЖилойДом,
- ЖилаяКомната,
- КоммунальнаяКвартира
- }
-
- public enum ГисСтатусПрибораУчета { Активный, Архивный }
-}
diff --git a/Hcs.Client/ClientApi/DataTypes/ГисСправочник.cs b/Hcs.Client/ClientApi/DataTypes/ГисСправочник.cs
deleted file mode 100644
index 66c1813..0000000
--- a/Hcs.Client/ClientApi/DataTypes/ГисСправочник.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using System;
-
-namespace Hcs.ClientApi.DataTypes
-{
- public class ГисСправочник
- {
- public string реестровыйНомер;
- public DateTime датаФормирования;
- public ГисЭлементСправочника[] элементы;
- }
-}
diff --git a/Hcs.Client/ClientApi/DataTypes/ГисЭлементСправочника.cs b/Hcs.Client/ClientApi/DataTypes/ГисЭлементСправочника.cs
deleted file mode 100644
index b7a0992..0000000
--- a/Hcs.Client/ClientApi/DataTypes/ГисЭлементСправочника.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using System;
-
-namespace Hcs.ClientApi.DataTypes
-{
- public class ГисЭлементСправочника
- {
- public string код;
- public Guid гуид;
- public bool актуальный;
- public ГисПолеЭлементаСправочника[] поля;
- public ГисЭлементСправочника[] элементы;
- }
-}
diff --git a/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtRequestsApi.cs b/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtRequestsApi.cs
deleted file mode 100644
index 858b39b..0000000
--- a/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtRequestsApi.cs
+++ /dev/null
@@ -1,106 +0,0 @@
-using System;
-using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace Hcs.ClientApi.DebtRequestsApi
-{
- public class HcsDebtRequestsApi
- {
- private HcsClientConfig config;
-
- public HcsDebtRequestsApi(HcsClientConfig config)
- {
- this.config = config;
- }
-
- public async Task ExportDSRByRequestNumber(
- string requestNumber, CancellationToken token = default)
- {
- var worker = new HcsDebtSubrequestExporter(config);
- return await worker.ExportDSRByRequestNumber(requestNumber, token);
- }
-
- ///
- /// Получение списка запросов о наличии задолженности направленных в данный период
- ///
- public async Task ExportDSRsByPeriodOfSending(
- DateTime startDate,
- DateTime endDate,
- Guid? firstSubrequestGuid,
- Action resultHandler,
- CancellationToken token = default)
- {
- var worker = new HcsDebtSubrequestExporter(config);
- return await worker.ExportDSRsByPeriodOfSending(
- startDate, endDate, firstSubrequestGuid, resultHandler, token);
- }
-
- ///
- /// Отправка пакета ответов на запросы о наличии задолженности
- ///
- public async Task ImportDSRsResponsesAsOneBatch(
- HcsDebtResponse[] responses,
- Action resultHandler,
- CancellationToken token = default)
- {
- var worker = new HcsDebtResponseImporter(config);
- var results = await worker.ImportDSRResponses(responses, token);
-
- foreach (var response in responses)
- {
- var result = results.FirstOrDefault(
- x => x.SubrequestGuid == response.SubrequestGuid &&
- x.TransportGuid == response.TransportGuid);
-
- if (result == null)
- {
- result = new HcsDebtResponseResult();
- result.TransportGuid = response.TransportGuid;
- result.SubrequestGuid = response.SubrequestGuid;
- result.Error = new HcsException(
- $"В пакете результатов приема ответов нет" +
- $" результата для подзапроса {response.SubrequestGuid}");
- }
-
- resultHandler(response, result);
- }
-
- return responses.Length;
- }
-
- ///
- /// Отправка ответов на запросы о наличии задолженности для списков любой длины
- ///
- public async Task ImportDSRsResponses(
- HcsDebtResponse[] responses,
- Action resultHandler,
- CancellationToken token = default)
- {
- int chunkSize = 20;
- int i = 0;
- HcsDebtResponse[][] chunks =
- responses.GroupBy(s => i++ / chunkSize).Select(g => g.ToArray()).ToArray();
-
- int n = 0;
- foreach (var chunk in chunks)
- {
- n += await ImportDSRsResponsesAsOneBatch(chunk, resultHandler, token);
- }
-
- return n;
- }
-
- ///
- /// Отправка ответа на один запрос о наличии задолженности
- ///
- public async Task ImportDSRResponse(
- HcsDebtResponse response, CancellationToken token = default)
- {
- HcsDebtResponse[] array = { response };
- HcsDebtResponseResult result = null;
- await ImportDSRsResponses(array, (x, y) => result = y, token);
- return result;
- }
- }
-}
diff --git a/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtRequestsMethod.cs b/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtRequestsMethod.cs
deleted file mode 100644
index 35b03e3..0000000
--- a/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtRequestsMethod.cs
+++ /dev/null
@@ -1,135 +0,0 @@
-using Hcs.ClientApi.RemoteCaller;
-using System;
-using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
-
-using DebtRequests = Hcs.Service.Async.DebtRequests.v15_7_0_1;
-
-namespace Hcs.Service.Async.DebtRequests.v15_7_0_1
-{
- public partial class AckRequestAck : IHcsAck { }
- public partial class getStateResult : IHcsGetStateResultMany { }
- public partial class Fault : IHcsFault { }
- public partial class HeaderType : IHcsHeaderType { }
-}
-
-namespace Hcs.ClientApi.DebtRequestsApi
-{
- /// Метод для отправки запросов к сервису запросов о наличии задолженности
- /// Описание: http://open-gkh.ru/DebtRequestsServiceAsync/
- public class HcsDebtRequestsMethod : HcsRemoteCallMethod
- {
- public HcsEndPoints EndPoint => HcsEndPoints.DebtRequestsAsync;
-
- public HcsDebtRequestsMethod(HcsClientConfig config) : base(config)
- {
- }
-
- public DebtRequests.RequestHeader CreateRequestHeader() =>
- HcsRequestHelper.CreateHeader(ClientConfig);
-
- public System.ServiceModel.EndpointAddress RemoteAddress
- => GetEndpointAddress(HcsConstants.EndPointLocator.GetPath(EndPoint));
-
- private DebtRequests.DebtRequestsAsyncPortClient NewPortClient()
- {
- var client = new DebtRequests.DebtRequestsAsyncPortClient(_binding, RemoteAddress);
- ConfigureEndpointCredentials(client.Endpoint, client.ClientCredentials);
- return client;
- }
-
- ///
- /// Метод отправления запроса
- ///
- public async Task SendAsync(object request, CancellationToken token)
- {
- Func> func = async () => await SendBareAsync(request);
- return await RunRepeatableTaskInsistentlyAsync(func, token);
- }
-
- private async Task SendBareAsync(object request)
- {
- if (request == null) throw new ArgumentNullException("Null request");
- string version = HcsRequestHelper.GetRequestVersionString(request);
- _config.Log($"Отправляю {RemoteAddress.Uri}/{request.GetType().Name}" +
- $" в версии {version} {ThreadIdText}...");
-
- IHcsAck ack;
- using (var client = NewPortClient())
- {
- switch (request)
- {
-
- case DebtRequests.exportDebtSubrequestsRequest x:
- {
- var response = await client.exportDebtSubrequestsAsync(x.RequestHeader, x.exportDSRsRequest);
- ack = response.AckRequest.Ack;
- break;
- }
-
- case DebtRequests.importResponsesRequest x:
- {
- var response = await client.importResponsesAsync(x.RequestHeader, x.importDSRResponsesRequest);
- ack = response.AckRequest.Ack;
- break;
- }
-
- default:
- throw new HcsException($"Неизвестный тип запроса: {request.GetType().Name}");
- }
- }
-
- _config.Log($"Запрос принят в обработку, подтверждение {ack.MessageGUID}");
- return ack;
- }
-
- ///
- /// Выполняет однократную проверку наличия результата.
- /// Возвращает null если результата еще нет.
- ///
- protected override async Task TryGetResultAsync(
- IHcsAck sourceAck, CancellationToken token = default)
- {
- Func> func = async () => await TryGetResultBareAsync(sourceAck);
- return await RunRepeatableTaskInsistentlyAsync(func, token);
- }
-
- private async Task TryGetResultBareAsync(IHcsAck sourceAck)
- {
- using (var client = NewPortClient())
- {
- var requestHeader = HcsRequestHelper.CreateHeader(_config);
- var requestBody = new DebtRequests.getStateRequest { MessageGUID = sourceAck.MessageGUID };
-
- var response = await client.getStateAsync(requestHeader, requestBody);
- var resultBody = response.getStateResult;
-
- if (resultBody.RequestState == HcsAsyncRequestStateTypes.Ready)
- {
- CheckResultForErrors(resultBody);
- return resultBody;
- }
-
- return null;
- }
- }
-
- private void CheckResultForErrors(IHcsGetStateResultMany result)
- {
- if (result == null) throw new HcsException("Пустой result");
-
- if (result.Items == null) throw new HcsException("Пустой result.Items");
-
- result.Items.OfType().ToList().ForEach(x =>
- {
- throw HcsRemoteException.CreateNew(x.ErrorCode, x.ErrorMessage);
- });
-
- result.Items.OfType().ToList().ForEach(x =>
- {
- throw HcsRemoteException.CreateNew(x.ErrorCode, x.Description);
- });
- }
- }
-}
diff --git a/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtResponse.cs b/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtResponse.cs
deleted file mode 100644
index f7855a5..0000000
--- a/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtResponse.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using System;
-
-namespace Hcs.ClientApi.DebtRequestsApi
-{
- ///
- /// Ответ на запрос о наличии задолженности
- ///
- public class HcsDebtResponse
- {
- // Добавить в XML-описание
- public Guid TransportGuid; // Идентификатор ответа в отправляющей системе
- public Guid SubrequestGuid; // Идентификатор подзапроса
- public bool HasDebt;
- public HcsPersonalData[] PersonalData;
- public string Description;
- }
-
- ///
- /// Сведения о должнике
- ///
- public class HcsPersonalData
- {
- public string FirstName;
- public string MiddleName;
- public string LastName;
- }
-
- ///
- /// Результат отправки ответа на запрос о наличии задолженности
- ///
- public class HcsDebtResponseResult
- {
- // Добавить в XML-описание
- public Guid TransportGuid; // Идентификатор ответа в отправляющей системе
- public Guid SubrequestGuid; // Идентификатор подзапроса
- public Exception Error; // Ожибка отправки если указано
- public DateTime UpdateDate; // Дата успешного приема ответа если не указана ошибка
- public bool HasError => (Error != null);
- }
-}
diff --git a/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtResponseImporter.cs b/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtResponseImporter.cs
deleted file mode 100644
index 66b9b3a..0000000
--- a/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtResponseImporter.cs
+++ /dev/null
@@ -1,141 +0,0 @@
-using System;
-using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
-
-using DebtRequests = Hcs.Service.Async.DebtRequests.v15_7_0_1;
-
-namespace Hcs.ClientApi.DebtRequestsApi
-{
- public class HcsDebtResponseImporter : HcsDebtRequestsMethod
- {
- public HcsDebtResponseImporter(HcsClientConfig config) : base(config)
- {
- }
-
- public async Task ImportDSRResponses(
- HcsDebtResponse[] debtResponses, CancellationToken token = default)
- {
- if (debtResponses == null || debtResponses.Length == 0)
- throw new ArgumentException("Пустой debtResponses");
-
- var actions = debtResponses.Select(x => ConvertToImportAction(x)).ToArray();
-
- var requestHeader = CreateRequestHeader();
- var requestBody = new DebtRequests.importDSRResponsesRequest
- {
- Id = HcsConstants.SignedXmlElementId,
- // TODO: Проверить комментарий
- // Версия предустановлена в WSDL, реальная версия шаблонов дает ошибку "Bad Request"
- //version = HcsConstants.DefaultHCSVersionString,
- action = actions
- };
-
- var request = new DebtRequests.importResponsesRequest
- {
- RequestHeader = requestHeader,
- importDSRResponsesRequest = requestBody
- };
-
- var ack = await SendAsync(request, token);
- var result = await WaitForResultAsync(ack, true, token);
-
- var responseResults = result.Items.Select(
- x => ParseDebtResponseResultSafely(x)).ToArray();
-
- if (debtResponses.Length != responseResults.Length)
- throw new HcsException(
- $"Количество направленных ответов {debtResponses.Length} не совпадает" +
- $" с количеством {responseResults.Length} результатов обработки");
-
- foreach (var response in debtResponses)
- {
- var found = responseResults.FirstOrDefault(x => x.TransportGuid == response.TransportGuid);
- if (found != null) found.SubrequestGuid = response.SubrequestGuid;
- }
-
- return responseResults;
- }
-
- private DebtRequests.importDSRResponsesRequestAction ConvertToImportAction(
- HcsDebtResponse source)
- {
- DebtRequests.DebtInfoType[] debtInfo = null;
- if (source.HasDebt)
- {
- if (IsArrayEmpty(source.PersonalData)) throw new HcsException("Не указаны должники");
- debtInfo = source.PersonalData.Select(x => new DebtRequests.DebtInfoType
- {
- person = new DebtRequests.DebtInfoTypePerson
- {
- firstName = x.FirstName,
- lastName = x.LastName,
- middleName = x.MiddleName
- }
- }).ToArray();
- }
-
- var responseData = new DebtRequests.ImportDSRResponseType()
- {
- hasDebt = source.HasDebt,
- description = source.Description,
- Items = debtInfo,
- // TODO: Проверить комментарий
- //debtInfo = debtInfo, // Так было в hcs-v13
- executorGUID = ClientConfig.ExecutorGUID
- };
-
- return new DebtRequests.importDSRResponsesRequestAction()
- {
- subrequestGUID = source.SubrequestGuid.ToString(),
- TransportGUID = source.TransportGuid.ToString(),
- actionType = DebtRequests.DSRResponseActionType.Send,
- responseData = responseData
- };
- }
-
- private HcsDebtResponseResult ParseDebtResponseResultSafely(object resultItem)
- {
- try
- {
- return ParseDebtResponseResult(resultItem);
- }
- catch (Exception e)
- {
- return new HcsDebtResponseResult() { Error = e };
- }
- }
-
- private HcsDebtResponseResult ParseDebtResponseResult(object resultItem)
- {
- if (resultItem == null) throw new HcsException("Пустой resultItem");
-
- var common = resultItem as DebtRequests.CommonResultType;
- if (common == null) throw new HcsException($"Неожиданный тип экземпляра ответа {resultItem.GetType()}");
-
- if (common.Items == null || common.Items.Length == 0)
- throw new HcsException("Пустой набор common.Items");
-
- var result = new HcsDebtResponseResult();
- foreach (var commonItem in common.Items)
- {
- if (commonItem == null) throw new HcsException("Пустой commonItem");
-
- switch (commonItem)
- {
- case DebtRequests.CommonResultTypeError error:
- result.Error = new HcsRemoteException(error.ErrorCode, error.Description);
- break;
- case DateTime updateDate:
- result.UpdateDate = updateDate;
- break;
- default:
- throw new HcsException($"Неожиданный тип сommonItem" + commonItem.GetType());
- }
- }
-
- result.TransportGuid = ParseGuid(common.TransportGUID);
- return result;
- }
- }
-}
diff --git a/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtSubrequest.cs b/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtSubrequest.cs
deleted file mode 100644
index 8513b3f..0000000
--- a/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtSubrequest.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-using System;
-
-namespace Hcs.ClientApi.DebtRequestsApi
-{
- ///
- /// Подзапрос о наличии задолженности за ЖКУ у организаци предоставляющей ЖКУ.
- /// В терминологии ГИСЖКХ это называется Subrequests, потому что сама ГИСЖКХ выбирает организации,
- /// которым (пере)направляется оригинальный запрос о наличии задолженности направленный его источником
- /// в ГИСЖКХ.
- ///
- public class HcsDebtSubrequest
- {
- public enum ResponseStatusType { Sent, NotSent, AutoGenerated }
-
- // TODO: Добавить XML-описания
- public Guid SubrequestGuid; // Идентификатор подзапроса направленный конкретному поставщику ЖКУ
- public Guid RequestGuid; // Идентификатор первичного запроса направленного соццентром всем поставщикам
- public string RequestNumber; // Номер запроса
- public DateTime SentDate; // Дата направления
- public string Address; // Строка адреса из запроса
- public Guid FiasHouseGuid; // Идентификатор здания в ФИАС
- public Guid GisHouseGuid; // Идентификатор здания в ГИСЖКХ
- public Guid HМObjectGuid; // Идентификатор помещения в ГИСЖКХ (v14)
- public string HMObjectType; // Тип помещения (v14)
- public string AddressDetails; // Номер помещения (не заполняется в v14)
- public DateTime DebtStartDate; // Начало периода задолженности
- public DateTime DebtEndDate; // Конец периода задолженности
- public ResponseStatusType ResponseStatus; // Признак отправления запроса
- public DateTime ResponseDate; // Дата ответа
-
- public override string ToString()
- {
- return
- $"ПодзапросОНЗ #{RequestNumber}" +
- $" Address=[{Address}] Details=[{AddressDetails}]" +
- $" HMO={HМObjectGuid} Sent={SentDate} ResponseStatus={ResponseStatus}";
- }
- }
-}
diff --git a/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtSubrequestExporter.cs b/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtSubrequestExporter.cs
deleted file mode 100644
index 9c37a9c..0000000
--- a/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtSubrequestExporter.cs
+++ /dev/null
@@ -1,251 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
-
-using DebtRequests = Hcs.Service.Async.DebtRequests.v15_7_0_1;
-
-namespace Hcs.ClientApi.DebtRequestsApi
-{
- ///
- /// Метод получения данных о направленных нам (под)запросах о наличии задолженности
- ///
- public class HcsDebtSubrequestExporter : HcsDebtRequestsMethod
- {
- public HcsDebtSubrequestExporter(HcsClientConfig config) : base(config)
- {
- EnableMinimalResponseWaitDelay = true;
- }
-
- public class DSRsBatch
- {
- public List DebtSubrequests = new List();
- public Guid NextSubrequestGuid;
- public bool LastPage;
- }
-
- public async Task ExportDSRByRequestNumber(string requestNumber, CancellationToken token)
- {
- var conditionTypes = new List();
- var conditionValues = new List