Beispiel #1
0
 public ArchTechTiRequester(ArchTechRequestParams requestParams, IGrouping <enumTypeHierarchy, ArchTechRequestParam> objectIds) : base(requestParams)
 {
     RequestParams = requestParams;
     Errors        = new StringBuilder();
     TiIds         = objectIds
                     .Select(id => new IntPair(id.ID.ID, id.ChannelType))
                     .ToList();
 }
Beispiel #2
0
 public ArchTechTpRequester(ArchTechRequestParams requestParams, IGrouping <enumTypeHierarchy, ArchTechRequestParam> objectIds) : base(requestParams)
 {
     Channels = new HashSet <byte>();
     Tps      = objectIds
                .Select(id =>
     {
         Channels.Add(id.ChannelType);
         return(new ID_TypeHierarchy(enumTypeHierarchy.Info_TP, id.ID.ID));
     })
                .ToList();
 }
Beispiel #3
0
        public ArchTechFormulaRequester(ArchTechRequestParams requestParams, IGrouping <enumTypeHierarchy, ArchTechRequestParam> objectIds) : base(requestParams)
        {
            RequestParams = requestParams;
            Errors        = new StringBuilder();
            FormulaIds    = new List <TFormulaParam>();
            var formulasOurSideIds = new HashSet <string>();

            try
            {
                foreach (var rp in objectIds)
                {
                    if (string.IsNullOrEmpty(rp.ID.StringId))
                    {
                        continue;
                    }

                    if (rp.ID.TypeHierarchy == enumTypeHierarchy.Formula_TP_OurSide)
                    {
                        //Это формулы ТП, нужно добрать параметры
                        formulasOurSideIds.Add(rp.ID.StringId);
                    }
                    else
                    {
                        FormulaIds.Add(new TFormulaParam
                        {
                            FormulaID     = rp.ID.StringId,
                            FormulasTable = enumFormulasTable.Info_Formula_Description,
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                Errors.AppendException(ex);
            }

            var errors     = new StringBuilder();
            var formulasTp = TFormulaParam.GetFormulaParamForTPs(new HashSet <TP_ChanelType>(), new List <enumFormulaTPType>(), RequestParams.DtStart, RequestParams.DtEnd, errors,
                                                                 formulaIds: formulasOurSideIds);

            if (errors.Length > 0)
            {
                Errors.Append(errors);
            }

            FormulaIds.AddRange(formulasTp);
        }
Beispiel #4
0
        public ArchTechArchives(ArchTechRequestParams requestParams)
        {
            if (requestParams == null || requestParams.ArchTechObjectIds == null || requestParams.ArchTechObjectIds.Count == 0)
            {
                return;
            }

            Values = new List <ArchTechArchive>();
            Errors = new StringBuilder();

            //Раскидываем по типам объектов
            foreach (var requestParamByType in requestParams.ArchTechObjectIds.GroupBy(g => g.ID.TypeHierarchy))
            {
                var requester = ArchTechRequesterBase.GetRequester(requestParams, requestParamByType.Key, requestParamByType);
                if (requester != null)
                {
                    Values.AddRange(requester.InvokeReadArchive());
                }
            }
        }