public override List <ArchTechArchive> InvokeReadArchive() { if (!RequestParams.TechProfilePeriod.HasValue) { //Формулы пока не получается набирать из разных минуток RequestParams.TechProfilePeriod = EnumTechProfilePeriod.Трехминутно; } var fVals = new FormulasResult(FormulaIds, RequestParams.DtStart, RequestParams.DtEnd, enumTimeDiscreteType.DBHalfHours , EnumDataSourceType.ByPriority , 0, RequestParams.UseCoeffTransformation, false, enumTypeInformation.Energy, false, RequestParams.UnitDigit, false , enumOVMode.NormalMode, RequestParams.TimeZoneId, false, true, techProfilePeriod: RequestParams.TechProfilePeriod); if (fVals == null) { return(null); } if (fVals.Errors != null && fVals.Errors.Length > 0) { Errors.Append(fVals.Errors); } var firstDateTimeUTC = RequestParams.DtStart.ClientToUtc(RequestParams.TimeZoneId); var result = new List <ArchTechArchive>(); foreach (var fVal in fVals.Result_Values) { if (fVal.Result_Values == null || fVal.Result_Values.Count == 0) { continue; } var ff = fVal.Result_Values.First(); if (ff.Val_List == null || ff.Val_List.Count == 0) { continue; } var archTechValues = ff.Val_List .Select((v, i) => new { v, i }) .ToDictionary(k => k.i, v => v.v); result.Add(new ArchTechArchive(new ID_TypeHierarchy { StringId = fVal.Formula_UN, TypeHierarchy = fVal.FormulasTable.ToTypeHierarchy(), }, 0, RequestParams.TechProfilePeriod.Value, firstDateTimeUTC, archTechValues)); } return(result); }
public void AddError(OperationError error) { Succeeded = false; Errors = Errors.Append(error); }