Для изменения размера нажмите или перетащите

Связь абонента, точки учета и прибора учета

Пример 1

Получение всех приборов учёта, относящихся к абоненту, найденному по номеру лицевого счёта.

C#
// Подстрока л/с для поиска абонента
var consumerAccountSubstring = "1234567890";
// Найденный абонент (физическое или юридическое лицо)
var consumer = Consumer.GetInstances().FirstOrDefault(x => (x.AttributeCurrentAccount ?? string.Empty).Contains(consumerAccountSubstring));
if (consumer == null)
    Console.WriteLine("Абонент не найден");
Console.WriteLine(string.Format("Абонент {0}, лицевой счет {1}", consumer.Caption, consumer.AttributeCurrentAccount));
// Вывод списка приборов учета абонента
foreach(var meter in consumer.AttributeMeters)
    Console.WriteLine(string.Format("ПУ {0}, заводской номер {1}", meter.Class.Caption, meter.AttributeSerialNumber));
Пример 2

Получение абонента и соответствующей точки учёта по серийному номеру прибора учёта.

C#
// Искомый серийный номер
var serial = "1234567890";
// Поиск прибора учета по серийному номеру
var meter = ElectricityMeter.GetInstances().Single(x => (x.AttributeSerialNumber ?? string.Empty).Equals(serial));
// Получение точки учета, в которую установлен найденный прибор
var meterPoint = meter.AttributeMeterPointPlacement;
// Получение абонента по точке учета
var consumer = meterPoint.AttributeConsumer;
// Вывод результата
Console.WriteLine("ПУ {0}, ТУ {1}, абонент {2}", meter, meterPoint, consumer);
Пример 3

Получение информации об истории замен приборов учёта физического лица, найденного по паспортным данным.

C#
// Искомая серия паспорта
var passportSeries = "1234";
// Искомый номер паспорта
var passwordNumber = "567890";
// Поиск физического лица по указанным паспортным данным
var person = NaturalPerson.GetInstances().FirstOrDefault(x => x.AttributePassportSeries == passportSeries && x.AttributePassportNumber == passwordNumber);
if (person == null)
    Console.WriteLine("Пользователь не найден");
else
{
    // Получение точки учета абонента (первой из списка)
    var personMeterPoint = person.AttributeMeterPoints.GetValues().FirstOrDefault();
    if (personMeterPoint == null)
        Console.WriteLine("Нет данных о ТУ абонента");
    else
    {
        // Получение информации об установленных приборах учета
        var linkSettings = personMeterPoint.AttributeMeterPointToMeterLinkSettings;
        if (linkSettings == null)
            Console.WriteLine("К ТУ не привязан ни один прибор учета");
        else
        {
            // Вывод истории замен приборов в точке учета
            foreach(var info in linkSettings.AttributeInstalledMetersInfo.GetValues())
            {
                Console.WriteLine(string.Format("ПУ {0}, серийный номер {1}, дата установки {2}", 
                    // Тип прибора учета
                    info.AttributeMeter.Class.Caption, 
                    // Серийный номер
                    info.AttributeMeter.AttributeSerialNumber, 
                    // Дата установки
                    info.AttributeInstallInfo.AttributeExecutionDate ));
            }
        }
    }
}
См. также