Add field type conversion

This commit is contained in:
2025-08-14 12:23:01 +09:00
parent c6c1b31575
commit aec09fdbe0
6 changed files with 38 additions and 37 deletions

View File

@ -2,5 +2,7 @@
{
public class ГисПолеЭлементаСправочника
{
public string наименование;
public string значение;
}
}

View File

@ -1,17 +1,11 @@
using Newtonsoft.Json;
using System;
using System;
namespace Hcs.ClientApi.DataTypes
{
public class ГисСправочник
{
public string РеестровыйНомер;
public DateTime ДатаФормирования;
public ГисЭлементСправочника[] Элементы;
public string ToJSON()
{
return JsonConvert.SerializeObject(this);
}
public string реестровыйНомер;
public DateTime датаФормирования;
public ГисЭлементСправочника[] элементы;
}
}

View File

@ -4,12 +4,10 @@ namespace Hcs.ClientApi.DataTypes
{
public class ГисЭлементСправочника
{
public string Код;
public Guid Гуид;
public bool Актуальный;
// TODO: Добавить конвертацию типов
//public ГисПолеЭлементаСправочника[] Поля;
public Hcs.Service.Async.Nsi.v15_7_0_1.NsiElementFieldType[] Поля;
public ГисЭлементСправочника[] Элементы;
public string код;
public Guid гуид;
public bool актуальный;
public ГисПолеЭлементаСправочника[] поля;
public ГисЭлементСправочника[] элементы;
}
}

View File

@ -74,9 +74,9 @@ namespace Hcs.ClientApi.NsiApi
{
var справочник = new ГисСправочник()
{
РеестровыйНомер = input.NsiItemRegistryNumber,
ДатаФормирования = input.Created,
Элементы = AdoptNsiElementTypes(input.NsiElement)
реестровыйНомер = input.NsiItemRegistryNumber,
датаФормирования = input.Created,
элементы = AdoptNsiElementTypes(input.NsiElement)
};
return справочник;
@ -87,21 +87,26 @@ namespace Hcs.ClientApi.NsiApi
var элементыСправочника = new List<ГисЭлементСправочника>();
foreach (var element in input)
{
// TODO: Добавить конвертацию типов
//var поляЭлементаСправочника = new List<ГисПолеЭлементаСправочника>();
//foreach (var field in element.NsiElementField)
//{
//}
var поляЭлементаСправочника = new List<ГисПолеЭлементаСправочника>();
foreach (var field in element.NsiElementField)
{
CallOnType<Nsi.NsiElementStringFieldType>(field, x =>
{
поляЭлементаСправочника.Add(new ГисПолеЭлементаСправочника()
{
наименование = x.Name,
значение = x.Value
});
});
}
элементыСправочника.Add(new ГисЭлементСправочника()
{
Код = element.Code,
Гуид = ParseGuid(element.GUID),
Актуальный = element.IsActual,
// TODO: Добавить конвертацию типов
//Поля = [.. поляЭлементаСправочника]
Поля = element.NsiElementField,
Элементы = element.ChildElement.Length > 0 ? AdoptNsiElementTypes(element.ChildElement) : null
код = element.Code,
гуид = ParseGuid(element.GUID),
актуальный = element.IsActual,
поля = [.. поляЭлементаСправочника],
элементы = element.ChildElement.Length > 0 ? AdoptNsiElementTypes(element.ChildElement) : null
});
}
return [.. элементыСправочника];