Rework registry elements

This commit is contained in:
2025-09-08 19:48:57 +09:00
parent 80901cc1f9
commit 30235c3d7e
16 changed files with 158 additions and 178 deletions

View File

@ -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
/// <summary>
/// Ссылка на НСИ "Основание заключения договора" (реестровый номер 58).
/// Ссылка на НСИ "Основание заключения договора" (реестровый номер 58)
/// </summary>
public nsiRef contractBase;
public RegistryElement contractBase;
/// <summary>
/// Сведения о сроках

View File

@ -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
/// <summary>
/// Состояние (НСИ 24)
/// </summary>
public nsiRef state;
public RegistryElement state;
/// <summary>
/// Необязательное. Стадия жизненного цикла (НСИ 338).
/// </summary>
public nsiRef lifeCycleStage;
public RegistryElement lifeCycleStage;
/// <summary>
/// Год ввода в эксплуатацию. До 2215 включительно.
@ -46,7 +47,7 @@ namespace Hcs.Client.Api.Payload.HouseManagement
/// <summary>
/// Часовая зона. Справочник 32.
/// </summary>
public nsiRef olsonTZ;
public RegistryElement olsonTZ;
/// <summary>
/// Наличие у дома статуса объекта культурного наследия

View File

@ -1,6 +1,4 @@
using Hcs.Service.Async.HouseManagement;
namespace Hcs.Client.Api.Registry
namespace Hcs.Client.Api.Registry
{
/// <summary>
/// НСИ "Межповерочный интервал" (реестровый номер 16).
@ -11,10 +9,8 @@ namespace Hcs.Client.Api.Registry
/// <summary>
/// 4 года
/// </summary>
public static nsiRef Element4 => new()
{
Code = "4",
GUID = "296aff1b-0fbe-4111-9aea-1693a6e58db0"
};
public static RegistryElement Element4 => new(
"4",
"296aff1b-0fbe-4111-9aea-1693a6e58db0");
}
}

View File

@ -1,6 +1,4 @@
using Hcs.Service.Async.HouseManagement;
namespace Hcs.Client.Api.Registry
namespace Hcs.Client.Api.Registry
{
/// <summary>
/// НСИ "Тарифицируемый ресурс" (реестровый номер 239).
@ -11,10 +9,8 @@ namespace Hcs.Client.Api.Registry
/// <summary>
/// Тепловая энергия
/// </summary>
public static ContractSubjectTypeMunicipalResource Element4 => new()
{
Code = "4",
GUID = "eec6e4b8-76c8-4fce-99b7-c95718edad19"
};
public static RegistryElement Element4 => new(
"4",
"eec6e4b8-76c8-4fce-99b7-c95718edad19");
}
}

View File

@ -1,6 +1,4 @@
using Hcs.Service.Async.HouseManagement;
namespace Hcs.Client.Api.Registry
namespace Hcs.Client.Api.Registry
{
/// <summary>
/// НСИ "Состояние дома" (реестровый номер 24).
@ -11,37 +9,29 @@ namespace Hcs.Client.Api.Registry
/// <summary>
/// Аварийный
/// </summary>
public static nsiRef Element1 => new()
{
Code = "1",
GUID = "cbe05853-a91b-43cc-a2cb-06cdfa97d492"
};
public static RegistryElement Element1 => new(
"1",
"cbe05853-a91b-43cc-a2cb-06cdfa97d492");
/// <summary>
/// Исправный
/// </summary>
public static nsiRef Element2 => new()
{
Code = "2",
GUID = "2d3ae73e-6c72-4740-9122-9c632d1893a7"
};
public static RegistryElement Element2 => new(
"2",
"2d3ae73e-6c72-4740-9122-9c632d1893a7");
/// <summary>
/// Ветхий
/// </summary>
public static nsiRef Element3 => new()
{
Code = "3",
GUID = "bf083ae4-e4ec-4ace-b190-4d009e5cd1a1"
};
public static RegistryElement Element3 => new(
"3",
"bf083ae4-e4ec-4ace-b190-4d009e5cd1a1");
/// <summary>
/// Не выбран
/// </summary>
public static nsiRef Element4 => new()
{
Code = "4",
GUID = "4ee07c0b-82d6-41f4-a8c5-2cff784bbd9c"
};
public static RegistryElement Element4 => new(
"4",
"4ee07c0b-82d6-41f4-a8c5-2cff784bbd9c");
}
}

View File

@ -1,6 +1,4 @@
using Hcs.Service.Async.HouseManagement;
namespace Hcs.Client.Api.Registry
namespace Hcs.Client.Api.Registry
{
/// <summary>
/// НСИ "Показатели качества коммунальных ресурсов" (реестровый номер 276).
@ -11,19 +9,15 @@ namespace Hcs.Client.Api.Registry
/// <summary>
/// Величина тепловой нагрузки
/// </summary>
public static nsiRef Element4 => new()
{
Code = "4",
GUID = "51dd6edc-83fe-4810-8b62-4dc85a75e9a3"
};
public static RegistryElement Element4 => new(
"4",
"51dd6edc-83fe-4810-8b62-4dc85a75e9a3");
/// <summary>
/// Диапазон давления теплоносителя в подающем трубопроводе
/// </summary>
public static nsiRef Element10 => new()
{
Code = "10",
GUID = "a5a17c90-cc4b-4f32-a22b-6e06cd42a68c"
};
public static RegistryElement Element10 => new(
"10",
"a5a17c90-cc4b-4f32-a22b-6e06cd42a68c");
}
}

View File

@ -1,6 +1,4 @@
using Hcs.Service.Async.HouseManagement;
namespace Hcs.Client.Api.Registry
namespace Hcs.Client.Api.Registry
{
/// <summary>
/// НСИ "Вид коммунальной услуги" (реестровый номер 3).
@ -11,10 +9,8 @@ namespace Hcs.Client.Api.Registry
/// <summary>
/// Отопление
/// </summary>
public static ContractSubjectTypeServiceType Element6 => new()
{
Code = "6",
GUID = "74925764-ddf3-4b4b-b18d-85994187c13a"
};
public static RegistryElement Element6 => new(
"6",
"74925764-ddf3-4b4b-b18d-85994187c13a");
}
}

View File

@ -1,6 +1,4 @@
using Hcs.Service.Async.HouseManagement;
namespace Hcs.Client.Api.Registry
namespace Hcs.Client.Api.Registry
{
/// <summary>
/// НСИ "Часовые зоны по Olson" (реестровый номер 32).
@ -11,10 +9,8 @@ namespace Hcs.Client.Api.Registry
/// <summary>
/// Иркутск
/// </summary>
public static nsiRef Element11 => new()
{
Code = "11",
GUID = "244ae392-0b96-46f2-80ea-4dac32e7326a"
};
public static RegistryElement Element11 => new(
"11",
"244ae392-0b96-46f2-80ea-4dac32e7326a");
}
}

View File

@ -1,6 +1,4 @@
using Hcs.Service.Async.HouseManagement;
namespace Hcs.Client.Api.Registry
namespace Hcs.Client.Api.Registry
{
/// <summary>
/// НСИ "Стадия жизненного цикла" (реестровый номер 338).
@ -11,64 +9,50 @@ namespace Hcs.Client.Api.Registry
/// <summary>
/// Эксплуатация
/// </summary>
public static nsiRef Element1 => new()
{
Code = "1",
GUID = "29b18683-5195-4ef4-83fc-71bf45597d46"
};
public static RegistryElement Element1 => new(
"1",
"29b18683-5195-4ef4-83fc-71bf45597d46");
/// <summary>
/// Реконструкция
/// </summary>
public static nsiRef Element2 => new()
{
Code = "2",
GUID = "75764145-f181-47e5-bff1-1306a46eb20e"
};
public static RegistryElement Element2 => new(
"2",
"75764145-f181-47e5-bff1-1306a46eb20e");
/// <summary>
/// Капитальный ремонт с отселением
/// </summary>
public static nsiRef Element3 => new()
{
Code = "3",
GUID = "dee170df-db42-4cd6-9e5e-b62be91b3663"
};
public static RegistryElement Element3 => new(
"3",
"dee170df-db42-4cd6-9e5e-b62be91b3663");
/// <summary>
/// Капитальный ремонт без отселения
/// </summary>
public static nsiRef Element4 => new()
{
Code = "4",
GUID = "91dc91e2-6883-4c84-b711-53f57f28dbe2"
};
public static RegistryElement Element4 => new(
"4",
"91dc91e2-6883-4c84-b711-53f57f28dbe2");
/// <summary>
/// Снос
/// </summary>
public static nsiRef Element5 => new()
{
Code = "5",
GUID = "cc358aa9-10b3-4d6a-bbec-c5f6b14950f6"
};
public static RegistryElement Element5 => new(
"5",
"cc358aa9-10b3-4d6a-bbec-c5f6b14950f6");
/// <summary>
/// Не эксплуатируется, расселен
/// </summary>
public static nsiRef Element6 => new()
{
Code = "6",
GUID = "4bed3d7e-6015-428e-b4b4-7b7aec171c0d"
};
public static RegistryElement Element6 => new(
"6",
"4bed3d7e-6015-428e-b4b4-7b7aec171c0d");
/// <summary>
/// Выведен из эксплуатации
/// </summary>
public static nsiRef Element7 => new()
{
Code = "7",
GUID = "f3edc065-c1a1-4110-96fa-03313ae7a039"
};
public static RegistryElement Element7 => new(
"7",
"f3edc065-c1a1-4110-96fa-03313ae7a039");
}
}

View File

@ -1,6 +1,4 @@
using Hcs.Service.Async.HouseManagement;
namespace Hcs.Client.Api.Registry
namespace Hcs.Client.Api.Registry
{
/// <summary>
/// НСИ "Основание заключения договора" (реестровый номер 58).
@ -11,91 +9,71 @@ namespace Hcs.Client.Api.Registry
/// <summary>
/// Решение собрания собственников
/// </summary>
public static nsiRef Element1 => new()
{
Code = "1",
GUID = "110d48b2-32a9-4a44-939c-b784d9794621"
};
public static RegistryElement Element1 => new(
"1",
"110d48b2-32a9-4a44-939c-b784d9794621");
/// <summary>
/// Открытый конкурс
/// </summary>
public static nsiRef Element2 => new()
{
Code = "2",
GUID = "a9dc59c3-d53f-42eb-ba98-cf8c74d88d36"
};
public static RegistryElement Element2 => new(
"2",
"a9dc59c3-d53f-42eb-ba98-cf8c74d88d36");
/// <summary>
/// Договор управления
/// </summary>
public static nsiRef Element3 => new()
{
Code = "3",
GUID = "11efe618-79f8-4f53-bfd6-11620e8e9e1e"
};
public static RegistryElement Element3 => new(
"3",
"11efe618-79f8-4f53-bfd6-11620e8e9e1e");
/// <summary>
/// Устав
/// </summary>
public static nsiRef Element4 => new()
{
Code = "4",
GUID = "a2eb920c-8163-4958-812a-ad153a5dfde6"
};
public static RegistryElement Element4 => new(
"4",
"a2eb920c-8163-4958-812a-ad153a5dfde6");
/// <summary>
/// Решение правления
/// </summary>
public static nsiRef Element5 => new()
{
Code = "5",
GUID = "58639715-2708-4b8e-a5e6-7cae4ddbf03b"
};
public static RegistryElement Element5 => new(
"5",
"58639715-2708-4b8e-a5e6-7cae4ddbf03b");
/// <summary>
/// Решение органа управления застройщика
/// </summary>
public static nsiRef Element6 => new()
{
Code = "6",
GUID = "9b606ef5-7701-4a12-a837-d81b50939160"
};
public static RegistryElement Element6 => new(
"6",
"9b606ef5-7701-4a12-a837-d81b50939160");
/// <summary>
/// Заявление потребителя
/// </summary>
public static nsiRef Element7 => new()
{
Code = "7",
GUID = "93cd9d85-91b8-4bf9-ae48-c5f1e691949f"
};
public static RegistryElement Element7 => new(
"7",
"93cd9d85-91b8-4bf9-ae48-c5f1e691949f");
/// <summary>
/// Нормативный правовой акт
/// </summary>
public static nsiRef Element8 => new()
{
Code = "8",
GUID = "8b8ee37b-fa79-40cc-b98d-0e51f0c38d03"
};
public static RegistryElement Element8 => new(
"8",
"8b8ee37b-fa79-40cc-b98d-0e51f0c38d03");
/// <summary>
/// Разрешение на ввод в эксплуатацию
/// </summary>
public static nsiRef Element9 => new()
{
Code = "9",
GUID = "16331000-d96e-4a33-a6c7-3cb9eacf4927"
};
public static RegistryElement Element9 => new(
"9",
"16331000-d96e-4a33-a6c7-3cb9eacf4927");
/// <summary>
/// Устав
/// </summary>
public static nsiRef Element10 => new()
{
Code = "10",
GUID = "555638ae-a207-46fa-99bd-88bdb297c45a"
};
public static RegistryElement Element10 => new(
"10",
"555638ae-a207-46fa-99bd-88bdb297c45a");
}
}

View File

@ -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;
}
}

View File

@ -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
};

View File

@ -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: Разобраться с кадастровым номером

View File

@ -83,6 +83,7 @@
<Compile Include="Client\Api\Registry\Registry32.cs" />
<Compile Include="Client\Api\Registry\Registry338.cs" />
<Compile Include="Client\Api\Registry\Registry58.cs" />
<Compile Include="Client\Api\Registry\RegistryElement.cs" />
<Compile Include="Client\Api\Request\Adapter\IGetStateResult.cs" />
<Compile Include="Client\Api\Request\Adapter\IGetStateResultMany.cs" />
<Compile Include="Client\Api\Request\Adapter\IGetStateResultOne.cs" />

View File

@ -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,

View File

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