Files
hcs/Hcs.TestApp/ClientDemo/HouseManagementDemo.cs
HOME-LAPTOP\kshkulev 33ab055b43 Add project
Basic formatting applied. Unnecessary comments have been removed. Suspicious code is covered by TODO.
2025-08-12 11:21:10 +09:00

154 lines
7.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 = "1061001043421";
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("2d393e41-b7e2-4125-9593-c4127617e3f8");
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("c7418f95-8ec5-40a3-9474-c4924e17409e");
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 ГисДоговор();
договор.ТипДоговораРСО = ГисТипДоговораРСО.ПубличныйИлиНежилые;
договор.НомерДоговора = "100-1-41-21900-01";
договор.ДатаЗаключения = new DateTime(2007, 7, 1);
// TODO: Заполнить контрагента получив его GUID через OrgRegistryService по ОГРН
договор.Контрагент = new ГисКонтрагент();
// TODO: Заполнить хотя бы один адрес
var адреса = new List<ГисАдресныйОбъект>();
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("" + прибор);
};
// ул. Мурманская, 1А
var houseGuid = new Guid("0c94cace-2030-4b0a-97c4-de85eef83282");
var n = client.HouseManagement.ПолучитьПриборыУчетаПоЗданию(houseGuid, resultHandler).Result;
Console.WriteLine("n = " + n);
}
public static void DemoExportContractAddressObjects(HcsClient client)
{
Action<ГисАдресныйОбъект> resultHandler = (адрес) =>
{
Console.WriteLine("" + адрес);
};
var гуидДоговора = new Guid("4f8b6688-ef14-43e6-99a9-846e59cd82e8");
var договор = new ГисДоговор() { ГуидДоговора = гуидДоговора };
var n = client.HouseManagement.ПолучитьАдресаДоговораРСО(договор, resultHandler).Result;
Console.WriteLine("n = " + n);
}
public static void DemoExportAccounts(HcsClient client)
{
Action<ГисЛицевойСчет> resultHandler = (лс) =>
{
Console.WriteLine("" + лс);
};
// ул. Мурманская, 1А
var houseGuid = new Guid("0c94cace-2030-4b0a-97c4-de85eef83282");
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)
{
// Петрозаводск, Лисицыной, 19
var guid = Guid.Parse("6596ad9d-fee2-4c5b-8249-dbf78b0281b9");
var здание = client.HouseManagement.ПолучитьЗданиеПоГуидФиас(guid).Result;
Console.WriteLine("ГисЗдание = " + здание);
foreach (var помещение in здание.Помещения)
{
Console.WriteLine(помещение.ToString());
}
}
}
}