From 30235c3d7eb1d7944c380a5b5e9884833d59500e Mon Sep 17 00:00:00 2001 From: "HOME-LAPTOP\\kshkulev" Date: Mon, 8 Sep 2025 19:48:57 +0900 Subject: [PATCH] Rework registry elements --- .../ImportContractDataPayload.cs | 7 +- .../ImportLivingHouseUODataPayload.cs | 9 +- Hcs.Client/Client/Api/Registry/Registry16.cs | 12 +-- Hcs.Client/Client/Api/Registry/Registry239.cs | 12 +-- Hcs.Client/Client/Api/Registry/Registry24.cs | 36 +++----- Hcs.Client/Client/Api/Registry/Registry276.cs | 20 ++--- Hcs.Client/Client/Api/Registry/Registry3.cs | 12 +-- Hcs.Client/Client/Api/Registry/Registry32.cs | 12 +-- Hcs.Client/Client/Api/Registry/Registry338.cs | 60 +++++-------- Hcs.Client/Client/Api/Registry/Registry58.cs | 84 +++++++------------ .../Client/Api/Registry/RegistryElement.cs | 9 ++ .../ImportContractDataRequest.cs | 6 +- .../ImportHouseUODataRequest.cs | 18 +++- Hcs.Client/Hcs.Client.csproj | 1 + .../Scenario/DeviceMeteringScenario.cs | 2 - .../Scenario/HouseManagementScenario.cs | 36 ++++++-- 16 files changed, 158 insertions(+), 178 deletions(-) create mode 100644 Hcs.Client/Client/Api/Registry/RegistryElement.cs diff --git a/Hcs.Client/Client/Api/Payload/HouseManagement/ImportContractDataPayload.cs b/Hcs.Client/Client/Api/Payload/HouseManagement/ImportContractDataPayload.cs index 08379d4..95dc65c 100644 --- a/Hcs.Client/Client/Api/Payload/HouseManagement/ImportContractDataPayload.cs +++ b/Hcs.Client/Client/Api/Payload/HouseManagement/ImportContractDataPayload.cs @@ -1,4 +1,5 @@ -using Hcs.Service.Async.HouseManagement; +using Hcs.Client.Api.Registry; +using Hcs.Service.Async.HouseManagement; using System; namespace Hcs.Client.Api.Payload.HouseManagement @@ -37,9 +38,9 @@ namespace Hcs.Client.Api.Payload.HouseManagement // TODO: Protocol /// - /// Ссылка на НСИ "Основание заключения договора" (реестровый номер 58). + /// Ссылка на НСИ "Основание заключения договора" (реестровый номер 58) /// - public nsiRef contractBase; + public RegistryElement contractBase; /// /// Сведения о сроках diff --git a/Hcs.Client/Client/Api/Payload/HouseManagement/ImportLivingHouseUODataPayload.cs b/Hcs.Client/Client/Api/Payload/HouseManagement/ImportLivingHouseUODataPayload.cs index 59691e1..6363017 100644 --- a/Hcs.Client/Client/Api/Payload/HouseManagement/ImportLivingHouseUODataPayload.cs +++ b/Hcs.Client/Client/Api/Payload/HouseManagement/ImportLivingHouseUODataPayload.cs @@ -1,4 +1,5 @@ -using Hcs.Service.Async.HouseManagement; +using Hcs.Client.Api.Registry; +using Hcs.Service.Async.HouseManagement; using System; namespace Hcs.Client.Api.Payload.HouseManagement @@ -20,12 +21,12 @@ namespace Hcs.Client.Api.Payload.HouseManagement /// /// Состояние (НСИ 24) /// - public nsiRef state; + public RegistryElement state; /// /// Необязательное. Стадия жизненного цикла (НСИ 338). /// - public nsiRef lifeCycleStage; + public RegistryElement lifeCycleStage; /// /// Год ввода в эксплуатацию. До 2215 включительно. @@ -46,7 +47,7 @@ namespace Hcs.Client.Api.Payload.HouseManagement /// /// Часовая зона. Справочник 32. /// - public nsiRef olsonTZ; + public RegistryElement olsonTZ; /// /// Наличие у дома статуса объекта культурного наследия diff --git a/Hcs.Client/Client/Api/Registry/Registry16.cs b/Hcs.Client/Client/Api/Registry/Registry16.cs index 060aee5..4e575e6 100644 --- a/Hcs.Client/Client/Api/Registry/Registry16.cs +++ b/Hcs.Client/Client/Api/Registry/Registry16.cs @@ -1,6 +1,4 @@ -using Hcs.Service.Async.HouseManagement; - -namespace Hcs.Client.Api.Registry +namespace Hcs.Client.Api.Registry { /// /// НСИ "Межповерочный интервал" (реестровый номер 16). @@ -11,10 +9,8 @@ namespace Hcs.Client.Api.Registry /// /// 4 года /// - public static nsiRef Element4 => new() - { - Code = "4", - GUID = "296aff1b-0fbe-4111-9aea-1693a6e58db0" - }; + public static RegistryElement Element4 => new( + "4", + "296aff1b-0fbe-4111-9aea-1693a6e58db0"); } } diff --git a/Hcs.Client/Client/Api/Registry/Registry239.cs b/Hcs.Client/Client/Api/Registry/Registry239.cs index 10d8efc..0c89ff4 100644 --- a/Hcs.Client/Client/Api/Registry/Registry239.cs +++ b/Hcs.Client/Client/Api/Registry/Registry239.cs @@ -1,6 +1,4 @@ -using Hcs.Service.Async.HouseManagement; - -namespace Hcs.Client.Api.Registry +namespace Hcs.Client.Api.Registry { /// /// НСИ "Тарифицируемый ресурс" (реестровый номер 239). @@ -11,10 +9,8 @@ namespace Hcs.Client.Api.Registry /// /// Тепловая энергия /// - public static ContractSubjectTypeMunicipalResource Element4 => new() - { - Code = "4", - GUID = "eec6e4b8-76c8-4fce-99b7-c95718edad19" - }; + public static RegistryElement Element4 => new( + "4", + "eec6e4b8-76c8-4fce-99b7-c95718edad19"); } } diff --git a/Hcs.Client/Client/Api/Registry/Registry24.cs b/Hcs.Client/Client/Api/Registry/Registry24.cs index eb665db..6ed06cb 100644 --- a/Hcs.Client/Client/Api/Registry/Registry24.cs +++ b/Hcs.Client/Client/Api/Registry/Registry24.cs @@ -1,6 +1,4 @@ -using Hcs.Service.Async.HouseManagement; - -namespace Hcs.Client.Api.Registry +namespace Hcs.Client.Api.Registry { /// /// НСИ "Состояние дома" (реестровый номер 24). @@ -11,37 +9,29 @@ namespace Hcs.Client.Api.Registry /// /// Аварийный /// - public static nsiRef Element1 => new() - { - Code = "1", - GUID = "cbe05853-a91b-43cc-a2cb-06cdfa97d492" - }; + public static RegistryElement Element1 => new( + "1", + "cbe05853-a91b-43cc-a2cb-06cdfa97d492"); /// /// Исправный /// - public static nsiRef Element2 => new() - { - Code = "2", - GUID = "2d3ae73e-6c72-4740-9122-9c632d1893a7" - }; + public static RegistryElement Element2 => new( + "2", + "2d3ae73e-6c72-4740-9122-9c632d1893a7"); /// /// Ветхий /// - public static nsiRef Element3 => new() - { - Code = "3", - GUID = "bf083ae4-e4ec-4ace-b190-4d009e5cd1a1" - }; + public static RegistryElement Element3 => new( + "3", + "bf083ae4-e4ec-4ace-b190-4d009e5cd1a1"); /// /// Не выбран /// - public static nsiRef Element4 => new() - { - Code = "4", - GUID = "4ee07c0b-82d6-41f4-a8c5-2cff784bbd9c" - }; + public static RegistryElement Element4 => new( + "4", + "4ee07c0b-82d6-41f4-a8c5-2cff784bbd9c"); } } diff --git a/Hcs.Client/Client/Api/Registry/Registry276.cs b/Hcs.Client/Client/Api/Registry/Registry276.cs index 31a35be..6f00f16 100644 --- a/Hcs.Client/Client/Api/Registry/Registry276.cs +++ b/Hcs.Client/Client/Api/Registry/Registry276.cs @@ -1,6 +1,4 @@ -using Hcs.Service.Async.HouseManagement; - -namespace Hcs.Client.Api.Registry +namespace Hcs.Client.Api.Registry { /// /// НСИ "Показатели качества коммунальных ресурсов" (реестровый номер 276). @@ -11,19 +9,15 @@ namespace Hcs.Client.Api.Registry /// /// Величина тепловой нагрузки /// - public static nsiRef Element4 => new() - { - Code = "4", - GUID = "51dd6edc-83fe-4810-8b62-4dc85a75e9a3" - }; + public static RegistryElement Element4 => new( + "4", + "51dd6edc-83fe-4810-8b62-4dc85a75e9a3"); /// /// Диапазон давления теплоносителя в подающем трубопроводе /// - public static nsiRef Element10 => new() - { - Code = "10", - GUID = "a5a17c90-cc4b-4f32-a22b-6e06cd42a68c" - }; + public static RegistryElement Element10 => new( + "10", + "a5a17c90-cc4b-4f32-a22b-6e06cd42a68c"); } } diff --git a/Hcs.Client/Client/Api/Registry/Registry3.cs b/Hcs.Client/Client/Api/Registry/Registry3.cs index b116008..4d068a0 100644 --- a/Hcs.Client/Client/Api/Registry/Registry3.cs +++ b/Hcs.Client/Client/Api/Registry/Registry3.cs @@ -1,6 +1,4 @@ -using Hcs.Service.Async.HouseManagement; - -namespace Hcs.Client.Api.Registry +namespace Hcs.Client.Api.Registry { /// /// НСИ "Вид коммунальной услуги" (реестровый номер 3). @@ -11,10 +9,8 @@ namespace Hcs.Client.Api.Registry /// /// Отопление /// - public static ContractSubjectTypeServiceType Element6 => new() - { - Code = "6", - GUID = "74925764-ddf3-4b4b-b18d-85994187c13a" - }; + public static RegistryElement Element6 => new( + "6", + "74925764-ddf3-4b4b-b18d-85994187c13a"); } } diff --git a/Hcs.Client/Client/Api/Registry/Registry32.cs b/Hcs.Client/Client/Api/Registry/Registry32.cs index 44b1a14..272d863 100644 --- a/Hcs.Client/Client/Api/Registry/Registry32.cs +++ b/Hcs.Client/Client/Api/Registry/Registry32.cs @@ -1,6 +1,4 @@ -using Hcs.Service.Async.HouseManagement; - -namespace Hcs.Client.Api.Registry +namespace Hcs.Client.Api.Registry { /// /// НСИ "Часовые зоны по Olson" (реестровый номер 32). @@ -11,10 +9,8 @@ namespace Hcs.Client.Api.Registry /// /// Иркутск /// - public static nsiRef Element11 => new() - { - Code = "11", - GUID = "244ae392-0b96-46f2-80ea-4dac32e7326a" - }; + public static RegistryElement Element11 => new( + "11", + "244ae392-0b96-46f2-80ea-4dac32e7326a"); } } diff --git a/Hcs.Client/Client/Api/Registry/Registry338.cs b/Hcs.Client/Client/Api/Registry/Registry338.cs index 0e21260..d4e248b 100644 --- a/Hcs.Client/Client/Api/Registry/Registry338.cs +++ b/Hcs.Client/Client/Api/Registry/Registry338.cs @@ -1,6 +1,4 @@ -using Hcs.Service.Async.HouseManagement; - -namespace Hcs.Client.Api.Registry +namespace Hcs.Client.Api.Registry { /// /// НСИ "Стадия жизненного цикла" (реестровый номер 338). @@ -11,64 +9,50 @@ namespace Hcs.Client.Api.Registry /// /// Эксплуатация /// - public static nsiRef Element1 => new() - { - Code = "1", - GUID = "29b18683-5195-4ef4-83fc-71bf45597d46" - }; + public static RegistryElement Element1 => new( + "1", + "29b18683-5195-4ef4-83fc-71bf45597d46"); /// /// Реконструкция /// - public static nsiRef Element2 => new() - { - Code = "2", - GUID = "75764145-f181-47e5-bff1-1306a46eb20e" - }; + public static RegistryElement Element2 => new( + "2", + "75764145-f181-47e5-bff1-1306a46eb20e"); /// /// Капитальный ремонт с отселением /// - public static nsiRef Element3 => new() - { - Code = "3", - GUID = "dee170df-db42-4cd6-9e5e-b62be91b3663" - }; + public static RegistryElement Element3 => new( + "3", + "dee170df-db42-4cd6-9e5e-b62be91b3663"); /// /// Капитальный ремонт без отселения /// - public static nsiRef Element4 => new() - { - Code = "4", - GUID = "91dc91e2-6883-4c84-b711-53f57f28dbe2" - }; + public static RegistryElement Element4 => new( + "4", + "91dc91e2-6883-4c84-b711-53f57f28dbe2"); /// /// Снос /// - public static nsiRef Element5 => new() - { - Code = "5", - GUID = "cc358aa9-10b3-4d6a-bbec-c5f6b14950f6" - }; + public static RegistryElement Element5 => new( + "5", + "cc358aa9-10b3-4d6a-bbec-c5f6b14950f6"); /// /// Не эксплуатируется, расселен /// - public static nsiRef Element6 => new() - { - Code = "6", - GUID = "4bed3d7e-6015-428e-b4b4-7b7aec171c0d" - }; + public static RegistryElement Element6 => new( + "6", + "4bed3d7e-6015-428e-b4b4-7b7aec171c0d"); /// /// Выведен из эксплуатации /// - public static nsiRef Element7 => new() - { - Code = "7", - GUID = "f3edc065-c1a1-4110-96fa-03313ae7a039" - }; + public static RegistryElement Element7 => new( + "7", + "f3edc065-c1a1-4110-96fa-03313ae7a039"); } } diff --git a/Hcs.Client/Client/Api/Registry/Registry58.cs b/Hcs.Client/Client/Api/Registry/Registry58.cs index bab4056..5953788 100644 --- a/Hcs.Client/Client/Api/Registry/Registry58.cs +++ b/Hcs.Client/Client/Api/Registry/Registry58.cs @@ -1,6 +1,4 @@ -using Hcs.Service.Async.HouseManagement; - -namespace Hcs.Client.Api.Registry +namespace Hcs.Client.Api.Registry { /// /// НСИ "Основание заключения договора" (реестровый номер 58). @@ -11,91 +9,71 @@ namespace Hcs.Client.Api.Registry /// /// Решение собрания собственников /// - public static nsiRef Element1 => new() - { - Code = "1", - GUID = "110d48b2-32a9-4a44-939c-b784d9794621" - }; + public static RegistryElement Element1 => new( + "1", + "110d48b2-32a9-4a44-939c-b784d9794621"); /// /// Открытый конкурс /// - public static nsiRef Element2 => new() - { - Code = "2", - GUID = "a9dc59c3-d53f-42eb-ba98-cf8c74d88d36" - }; + public static RegistryElement Element2 => new( + "2", + "a9dc59c3-d53f-42eb-ba98-cf8c74d88d36"); /// /// Договор управления /// - public static nsiRef Element3 => new() - { - Code = "3", - GUID = "11efe618-79f8-4f53-bfd6-11620e8e9e1e" - }; + public static RegistryElement Element3 => new( + "3", + "11efe618-79f8-4f53-bfd6-11620e8e9e1e"); /// /// Устав /// - public static nsiRef Element4 => new() - { - Code = "4", - GUID = "a2eb920c-8163-4958-812a-ad153a5dfde6" - }; + public static RegistryElement Element4 => new( + "4", + "a2eb920c-8163-4958-812a-ad153a5dfde6"); /// /// Решение правления /// - public static nsiRef Element5 => new() - { - Code = "5", - GUID = "58639715-2708-4b8e-a5e6-7cae4ddbf03b" - }; + public static RegistryElement Element5 => new( + "5", + "58639715-2708-4b8e-a5e6-7cae4ddbf03b"); /// /// Решение органа управления застройщика /// - public static nsiRef Element6 => new() - { - Code = "6", - GUID = "9b606ef5-7701-4a12-a837-d81b50939160" - }; + public static RegistryElement Element6 => new( + "6", + "9b606ef5-7701-4a12-a837-d81b50939160"); /// /// Заявление потребителя /// - public static nsiRef Element7 => new() - { - Code = "7", - GUID = "93cd9d85-91b8-4bf9-ae48-c5f1e691949f" - }; + public static RegistryElement Element7 => new( + "7", + "93cd9d85-91b8-4bf9-ae48-c5f1e691949f"); /// /// Нормативный правовой акт /// - public static nsiRef Element8 => new() - { - Code = "8", - GUID = "8b8ee37b-fa79-40cc-b98d-0e51f0c38d03" - }; + public static RegistryElement Element8 => new( + "8", + "8b8ee37b-fa79-40cc-b98d-0e51f0c38d03"); /// /// Разрешение на ввод в эксплуатацию /// - public static nsiRef Element9 => new() - { - Code = "9", - GUID = "16331000-d96e-4a33-a6c7-3cb9eacf4927" - }; + public static RegistryElement Element9 => new( + "9", + "16331000-d96e-4a33-a6c7-3cb9eacf4927"); /// /// Устав /// - public static nsiRef Element10 => new() - { - Code = "10", - GUID = "555638ae-a207-46fa-99bd-88bdb297c45a" - }; + public static RegistryElement Element10 => new( + "10", + "555638ae-a207-46fa-99bd-88bdb297c45a"); } } diff --git a/Hcs.Client/Client/Api/Registry/RegistryElement.cs b/Hcs.Client/Client/Api/Registry/RegistryElement.cs new file mode 100644 index 0000000..acb3c68 --- /dev/null +++ b/Hcs.Client/Client/Api/Registry/RegistryElement.cs @@ -0,0 +1,9 @@ +namespace Hcs.Client.Api.Registry +{ + public class RegistryElement(string code, string guid) + { + public string Code { get; } = code; + + public string GUID { get; } = guid; + } +} diff --git a/Hcs.Client/Client/Api/Request/HouseManagement/ImportContractDataRequest.cs b/Hcs.Client/Client/Api/Request/HouseManagement/ImportContractDataRequest.cs index d3bdba8..f0df45a 100644 --- a/Hcs.Client/Client/Api/Request/HouseManagement/ImportContractDataRequest.cs +++ b/Hcs.Client/Client/Api/Request/HouseManagement/ImportContractDataRequest.cs @@ -70,7 +70,11 @@ namespace Hcs.Client.Api.Request.HouseManagement PlanDateComptetion = payload.planDateComptetion, Item = true, ItemElementName = ItemChoiceType13.Owners, - ContractBase = payload.contractBase, + ContractBase = new nsiRef() + { + Code = payload.contractBase.Code, + GUID = payload.contractBase.GUID + }, DateDetails = payload.dateDetailsType, ContractAttachment = payload.contractAttachment }; diff --git a/Hcs.Client/Client/Api/Request/HouseManagement/ImportHouseUODataRequest.cs b/Hcs.Client/Client/Api/Request/HouseManagement/ImportHouseUODataRequest.cs index f616f93..d340b98 100644 --- a/Hcs.Client/Client/Api/Request/HouseManagement/ImportHouseUODataRequest.cs +++ b/Hcs.Client/Client/Api/Request/HouseManagement/ImportHouseUODataRequest.cs @@ -58,12 +58,24 @@ namespace Hcs.Client.Api.Request.HouseManagement { FIASHouseGuid = payload.fiasHouseGuid.ToString(), TotalSquare = payload.totalSquare, - State = payload.state, - LifeCycleStage = payload.lifeCycleStage, + State = new nsiRef() + { + Code = payload.state.Code, + GUID = payload.state.GUID + }, + LifeCycleStage = new nsiRef() + { + Code = payload.lifeCycleStage.Code, + GUID = payload.lifeCycleStage.GUID + }, UsedYear = payload.usedYear, FloorCount = payload.floorCount, OKTMO = payload.oktmo, - OlsonTZ = payload.olsonTZ, + OlsonTZ = new nsiRef() + { + Code = payload.olsonTZ.Code, + GUID = payload.olsonTZ.GUID + }, CulturalHeritage = payload.culturalHeritage, OGFData = payload.ogfData, // TODO: Разобраться с кадастровым номером diff --git a/Hcs.Client/Hcs.Client.csproj b/Hcs.Client/Hcs.Client.csproj index cdf4d15..eb431a6 100644 --- a/Hcs.Client/Hcs.Client.csproj +++ b/Hcs.Client/Hcs.Client.csproj @@ -83,6 +83,7 @@ + diff --git a/Hcs.TestApp/TestApp/Scenario/DeviceMeteringScenario.cs b/Hcs.TestApp/TestApp/Scenario/DeviceMeteringScenario.cs index b3e8a26..3bdc086 100644 --- a/Hcs.TestApp/TestApp/Scenario/DeviceMeteringScenario.cs +++ b/Hcs.TestApp/TestApp/Scenario/DeviceMeteringScenario.cs @@ -27,7 +27,6 @@ namespace Hcs.TestApp.Scenario }, DateValue = new DateTime(2025, 9, 25), TransportGUID = Guid.NewGuid().ToString(), - // TODO: Переделать работу с НСИ MunicipalResource = new nsiRef() { Code = Registry239.Element4.Code, @@ -39,7 +38,6 @@ namespace Hcs.TestApp.Scenario { DateValue = new DateTime(2025, 9, 25), TransportGUID = Guid.NewGuid().ToString(), - // TODO: Переделать работу с НСИ MunicipalResource = new nsiRef() { Code = Registry239.Element4.Code, diff --git a/Hcs.TestApp/TestApp/Scenario/HouseManagementScenario.cs b/Hcs.TestApp/TestApp/Scenario/HouseManagementScenario.cs index fd1a2e7..0e9e594 100644 --- a/Hcs.TestApp/TestApp/Scenario/HouseManagementScenario.cs +++ b/Hcs.TestApp/TestApp/Scenario/HouseManagementScenario.cs @@ -197,7 +197,11 @@ namespace Hcs.TestApp.Scenario RemoteMeteringMode = false, FirstVerificationDate = new DateTime(2021, 1, 1), FirstVerificationDateSpecified = true, - VerificationInterval = Registry16.Element4, + VerificationInterval = new nsiRef() + { + Code = Registry16.Element4.Code, + GUID = Registry16.Element4.GUID + }, FactorySealDate = new DateTime(2021, 1, 1), FactorySealDateSpecified = true, TemperatureSensor = false, @@ -211,7 +215,11 @@ namespace Hcs.TestApp.Scenario Item = true, Items = [new MunicipalResourceNotElectricBaseType() { - MunicipalResource = Registry239.Element4, + MunicipalResource = new nsiRef() + { + Code = Registry239.Element4.Code, + GUID = Registry239.Element4.GUID + }, MeteringValue = "0" }] }).Result; @@ -270,8 +278,16 @@ namespace Hcs.TestApp.Scenario contractSubject = [new SupplyResourceContractTypeContractSubject() { TransportGUID = contractSubjectGuid, - ServiceType = Registry3.Element6, - MunicipalResource = Registry239.Element4, + ServiceType = new ContractSubjectTypeServiceType() + { + Code = Registry3.Element6.Code, + GUID = Registry3.Element6.GUID + }, + MunicipalResource = new ContractSubjectTypeMunicipalResource() + { + Code = Registry239.Element4.Code, + GUID = Registry239.Element4.GUID + }, StartSupplyDate = effectiveDate, EndSupplyDate = comptetionDate, EndSupplyDateSpecified = true @@ -300,7 +316,11 @@ namespace Hcs.TestApp.Scenario quality = [new SupplyResourceContractTypeQuality() { PairKey = contractSubjectGuid, - QualityIndicator = Registry276.Element4, + QualityIndicator = new nsiRef() + { + Code = Registry276.Element4.Code, + GUID = Registry276.Element4.GUID + }, IndicatorValue = new SupplyResourceContractTypeQualityIndicatorValue() { Items = [9.76m, 10m, "214"], @@ -309,7 +329,11 @@ namespace Hcs.TestApp.Scenario }, new SupplyResourceContractTypeQuality() { PairKey = contractSubjectGuid, - QualityIndicator = Registry276.Element10, + QualityIndicator = new nsiRef() + { + Code = Registry276.Element10.Code, + GUID = Registry276.Element10.GUID + }, IndicatorValue = new SupplyResourceContractTypeQualityIndicatorValue() { Items = [0.05m, 0.3m, "298"],