154 lines
7.8 KiB
C#
154 lines
7.8 KiB
C#
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("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());
|
||
}
|
||
}
|
||
}
|
||
}
|