Пример #1
0
        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);
 }