public async Task <IHttpActionResult> GetFormStatus( Guid?periodComponentId, string organizationCode = null) { if (bfsConfig.Logging.TraceEnabled) { Configuration.Services.GetTraceWriter().Info(Request, "Контроллер " + GetType().Name, MethodBase.GetCurrentMethod().Name); } ReportPeriodComponent reportPeriodComponent = await _db.ReportPeriodComponents.Where(c => c.Id == periodComponentId).FirstOrDefaultAsync(); ReportSubmitChain reportSubmitChain = await _db.ReportSubmitChains .Where(c => c.Id == reportPeriodComponent.ReportSubmitChainId) .Include(c => c.ChainElements) .ThenInclude(e => e.Organization) .FirstOrDefaultAsync(); List <StoredFormData> storedFormData = await _db.StoredFormDatas .Where(sd => !periodComponentId.HasValue || sd.ReportPeriodComponentId == periodComponentId) .Where(sd => organizationCode == null || sd.Organization.Code == organizationCode) .Include(sd => sd.Organization) .ToListAsync(); foreach (ReportSubmitChainElement chainElement in reportSubmitChain.ChainElements) { string metaFormCode = storedFormData.Count == 0 ? "" : storedFormData.FirstOrDefault().MetaFormCode; if (storedFormData.Where(s => s.OrganizationId == chainElement.OrganizationId).Count() == 0) { storedFormData.Add(new StoredFormData() { StatusNumber = 0, Organization = chainElement.Organization, ExpertStatusNumber = 0, ExternalConstraintsStatusNumber = 0, InternalConstraintsStatusNumber = 0, ReportPeriodComponent = reportPeriodComponent, ReportPeriodComponentId = reportPeriodComponent.Id, OrganizationId = chainElement.OrganizationId, SubmitChainElementType = chainElement.Type, MetaFormCode = metaFormCode, Id = null, }); } } if (storedFormData == null) { return(NotFound()); } return(Ok(storedFormData)); }
public async Task <IHttpActionResult> GetSubmitChain(Guid id) { if (bfsConfig.Logging.TraceEnabled) { Configuration.Services.GetTraceWriter().Info(Request, "Контроллер " + GetType().Name, MethodBase.GetCurrentMethod().Name); } ReportSubmitChain submitChain = await _db.ReportSubmitChains .Where(sc => sc.Id == id) .Include(sc => sc.ReportPeriodComponents) .FirstOrDefaultAsync(); if (submitChain == null) { return(NotFound()); } return(Ok(submitChain)); }