using Hcs.ClientApi; using Hcs.ClientApi.DataTypes; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; namespace Hcs.ClientDemo { public class HouseManagementDemo { public static void DemoExportOrgRegistry(HcsClient client) { string ogrn = "1031402044145"; string kpp = ""; var orgs = client.OrgRegistryCommon.GetOrgByOgrn(ogrn, kpp).Result; Console.WriteLine($"Организация с ОГРН={ogrn} имеет {orgs.Count()} orgs:"); foreach (var org in orgs) Console.WriteLine($" {org}"); } public static void DemoExportOneContract(HcsClient client) { var guid = new Guid("575a7ff9-5473-4ab4-b077-fa80c1f85f0b"); var договор = client.HouseManagement.ПолучитьДоговорРСО(guid).Result; Console.WriteLine($"Получен договор №{договор.НомерДоговора} Статус={договор.СтатусВерсииДоговора}"); if (договор.ПриложенияДоговора != null && договор.ПриложенияДоговора.Length > 0) { var приложение = договор.ПриложенияДоговора[0]; Console.WriteLine($"Приложение: {приложение.ИмяПриложения} HASH={приложение.ХэшПриложения}"); FileStoreDemo.PrintFileHash(client, $"d:\\\\temp\\{приложение.ИмяПриложения}"); } } public static void DemoTerminateOneContract(HcsClient client) { var guid = new Guid("575a7ff9-5473-4ab4-b077-fa80c1f85f0b"); var договор = client.HouseManagement.ПолучитьДоговорРСО(guid).Result; Console.WriteLine($"Получен договор №{договор.НомерДоговора} Статус={договор.СтатусВерсииДоговора}"); var d = client.HouseManagement.РасторгнутьДоговор(договор, new DateTime(2019, 4, 1)).Result; Console.WriteLine($"Дата внесения расторжения договора: {d}"); } public static void DemoImportNewContract(HcsClient client) { var договор = new ГисДоговор { ТипДоговораРСО = ГисТипДоговораРСО.ПубличныйИлиНежилые, НомерДоговора = "239009043", ДатаЗаключения = new DateTime(2017, 1, 1), Контрагент = new ГисКонтрагент() { ТипКонтрагента = ГисТипКонтрагента.ВладелецПомещения, Индивид = new ГисИндивид() { Фамилия = "Пупкин", Имя = "Василий", Отчество = "Васильевич", СНИЛС = "62392021264" } } }; var адреса = new List<ГисАдресныйОбъект>() { new() { ГуидЗданияФиас = Guid.Parse("ff77e30f-a435-49fb-ae44-165c624f74d2"), НомерПомещения = "70" } }; var d = client.HouseManagement.РазместитьДоговор(договор, адреса).Result; Console.WriteLine($"Дата внесения нового договора: {d}"); } public static void DemoExportContractTrees(HcsClient client) { var stopwatch = System.Diagnostics.Stopwatch.StartNew(); Func<ГисДоговор, bool> contractFilter = (договор) => { if (договор.СтатусВерсииДоговора == ГисСтатусВерсииДоговора.Аннулирован) return false; if (договор.СтатусВерсииДоговора == ГисСтатусВерсииДоговора.Расторгнут) return false; // ГИС возвращает проекты, но не может их найти по коду if (договор.СтатусВерсииДоговора == ГисСтатусВерсииДоговора.Проект) return false; if ("ЭККУК" == договор.НомерДоговора) return false; if ("ЭККЧС" == договор.НомерДоговора) return false; if ("ЭККНСУ" == договор.НомерДоговора) return false; return true; }; var все = client.HouseManagement.ПолучитьВсеДоговорыИПриборы(contractFilter).Result; using (StreamWriter file = File.CreateText(@"all.json")) { JsonSerializer serializer = new JsonSerializer(); serializer.Serialize(file, все); } stopwatch.Stop(); Console.WriteLine($"{все}: {stopwatch.Elapsed}"); } public static void DemoExportMeteringDevices(HcsClient client) { Action<ГисПриборУчета> resultHandler = (прибор) => { Console.WriteLine("" + прибор); }; var houseGuid = Guid.Parse("ff77e30f-a435-49fb-ae44-165c624f74d2"); var n = client.HouseManagement.ПолучитьПриборыУчетаПоЗданию(houseGuid, resultHandler).Result; Console.WriteLine("n = " + n); } public static void DemoExportContractAddressObjects(HcsClient client) { Action<ГисАдресныйОбъект> resultHandler = (адрес) => { Console.WriteLine("" + адрес); }; var гуидДоговора = new Guid("575a7ff9-5473-4ab4-b077-fa80c1f85f0b"); var договор = new ГисДоговор() { ГуидДоговора = гуидДоговора }; var n = client.HouseManagement.ПолучитьАдресаДоговораРСО(договор, resultHandler).Result; Console.WriteLine("n = " + n); } public static void DemoExportAccounts(HcsClient client) { Action<ГисЛицевойСчет> resultHandler = (лс) => { Console.WriteLine("" + лс); }; var houseGuid = Guid.Parse("ff77e30f-a435-49fb-ae44-165c624f74d2"); var n = client.HouseManagement.ПолучитьЛицевыеСчетаПоЗданию(houseGuid, resultHandler).Result; Console.WriteLine("n = " + n); } public static void DemoExportSupplyResourceContracts(HcsClient client) { var договоры = new List<ГисДоговор>(); Action<ГисДоговор> resultHandler = (договорРСО) => { договоры.Add(договорРСО); }; var n = client.HouseManagement.ПолучитьДоговорыРСО(resultHandler).Result; договоры.Sort((x, y) => string.Compare(x.НомерДоговора, y.НомерДоговора)); договоры.ForEach(x => Console.WriteLine(x.ToString())); Console.WriteLine("n = " + n); } public static void DemoExportOneHouse(HcsClient client) { var guid = Guid.Parse("ff77e30f-a435-49fb-ae44-165c624f74d2"); var здание = client.HouseManagement.ПолучитьЗданиеПоГуидФиас(guid).Result; Console.WriteLine("ГисЗдание = " + здание); foreach (var помещение in здание.Помещения) { Console.WriteLine(помещение.ToString()); } } } }