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(); }
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(); }
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); }
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()); } } }