private Data ValidateFieldDisplayType(Data element, FieldReportDisplayType displayType) { switch (displayType) { case FieldReportDisplayType.Never: element.SectionCount = 0; break; case FieldReportDisplayType.Always: break; case FieldReportDisplayType.Unset: case FieldReportDisplayType.WithData: if (string.IsNullOrEmpty(element.Value)) { element.SectionCount = 0; } break; } return(element); }
public void GenerateReportHeader(string reportMainType, string reportSubType, string caseNumber, string reportNumber, Guid agencyId, IReportsData reportDetails, FieldReportDisplayType caseNumberDisplay, FieldReportDisplayType reportNumberDisplay) { const string sectionGroupName = "Header"; // Lookup the Agency Information var agency = _agencyQueryService.GetAgency(agencyId); var reportNumberEqualsCaseNumber = false; if (reportMainType == ModuleType.Incident.GetDescription()) { reportNumberEqualsCaseNumber = _agencyQueryService.GetAgencyConfiguration(agencyId).ReportNumberEqualsCaseNumber; } #region header section reportDetails.Datas.Add( new Data { Label = "ReportType", SectionCount = 1, SectionGroup = sectionGroupName, SectionSubGroup = string.Empty, FieldPath = string.Empty, Value = reportMainType + " " + reportSubType + " Report" }); reportDetails.Datas.Add( new Data { Label = "ReportMainType", SectionCount = 1, SectionGroup = sectionGroupName, SectionSubGroup = string.Empty, FieldPath = string.Empty, Value = reportMainType }); reportDetails.Datas.Add(ValidateFieldDisplayType( new Data { Label = "Report Number", SectionCount = 1, SectionGroup = sectionGroupName, SectionSubGroup = string.Empty, FieldPath = string.Empty, Value = !string.IsNullOrEmpty(reportNumber) ? reportNumber : "" }, (reportNumberEqualsCaseNumber?caseNumberDisplay:reportNumberDisplay))); reportDetails.Datas.Add(ValidateFieldDisplayType( new Data { Label = "Case Number", SectionCount = 1, SectionGroup = sectionGroupName, SectionSubGroup = string.Empty, FieldPath = string.Empty, Value = !string.IsNullOrEmpty(caseNumber) ? caseNumber : "" }, caseNumberDisplay)); var agencyCity = ResolveAgencyAttribute(agency, "City"); var agencyState = ResolveAgencyAttribute(agency, "State"); var agencyZipCode = ResolveAgencyAttribute(agency, "ZipCode"); reportDetails.Datas.Add( new Data { Label = "City-State-ZipCode", SectionCount = 1, SectionGroup = sectionGroupName, SectionSubGroup = string.Empty, FieldPath = string.Empty, Value = (agencyCity != string.Empty ? agencyCity + ", " : string.Empty) + (agencyState != string.Empty ? agencyState + " " : string.Empty) + (agencyZipCode) }); var classType = agency.GetType(); var arrPropertyInfos = classType.GetProperties(); foreach (var property in arrPropertyInfos) { var nullableProperty = property.GetValue(agency, null); var nodeValue = (nullableProperty != null ? nullableProperty.ToString() : string.Empty); if (property.Name != "AgencyId") { reportDetails.Datas.Add( new Data { Label = property.Name, SectionCount = 1, SectionGroup = sectionGroupName, SectionSubGroup = string.Empty, Value = nodeValue }); } } #endregion }