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"],