Beispiel #1
0
        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);
        }
Beispiel #2
0
        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
        }