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

Расчёт в зависимости от состояния коммутационного аппарата

C#
foreach (var sourceValue in sourceValues)
{  
    // Расчет потерь на интервале параметра
    var losses = 0.0;
    // Получить интервал параметра, текущего элемента значения потребления
    var interval = sourceValue.GetIntervalForValue(context);

    // Получить Ячейку присоединения, в которой располагается ТУ
    var cubicle = context.MeterPoint.RelationsCubicleAttributeMeterPoint.FirstOrDefault();
    if (cubicle != null)
    {
        // Получить состояние Коммутационного аппарата (КА), расположенного в Ячейке ТУ, на начало интервала текущего значения потребления
        var state = cubicle.AttributeElectricSwitchboard.GetSwitchboardState(interval.StartDt);
        // Если КА находился в состояние ВКЛ (true)
        if (state.State == true)
            losses = sourceValue.Value * 0.1; // то потери = 10% от потребления
    }
    // Промежуточный результат
    context.TempResults.Add(sourceValue.Result(losses));
}
// Результат расчета потерь для каждого интервала параметра
return context.TempResults;
См. также