Esempio n. 1
0
        public ReportData GetGeneratedData(int organizationId, ReportingPeriod reportingPeriod)
        {
            var managedOrganizations = _organizationService.GetManagedOrganizations(organizationId);
            var organizations        = managedOrganizations as Organization[] ?? managedOrganizations.ToArray();

            var onlyRecentStateReports = new StateReport[0];
            var allStateReports        = new StateReport[0];

            var onlyRecentZoneReports = new ZoneReport[0];
            var allZoneReports        = new ZoneReport[0];

            var onlyRecentUnitReports = _unitReportService.GetOnlyRecentUnitReports(reportingPeriod, organizations);
            var allUnitReports        = _unitReportService.GetAllUnitReports(reportingPeriod, organizations);

            return(ReportDataCalculator.GetCalculatedReportData(onlyRecentUnitReports, allUnitReports, onlyRecentZoneReports, allZoneReports, onlyRecentStateReports, allStateReports));
        }
Esempio n. 2
0
        private void ribZoneReport_Click(object sender, EventArgs e)
        {
            ZoneReport frm = new ZoneReport();

            frm.ShowDialog();
        }
Esempio n. 3
0
        public static ReportData GetCalculatedReportData(UnitReport[] onlyRecentUnitReports,
                                                         UnitReport[] allUnitReports,
                                                         ZoneReport[] onlyRecentZoneReports       = null,
                                                         ZoneReport[] allZoneReports              = null,
                                                         StateReport[] onlyRecentStateReports     = null,
                                                         StateReport[] allStateReports            = null,
                                                         CentralReport[] onlyRecentCentralReports = null,
                                                         CentralReport[] allCentralReports        = null

                                                         )
        {
            if (onlyRecentUnitReports == null)
            {
                onlyRecentUnitReports = new UnitReport[0];
            }
            if (onlyRecentZoneReports == null)
            {
                onlyRecentZoneReports = new ZoneReport[0];
            }
            if (onlyRecentStateReports == null)
            {
                onlyRecentStateReports = new StateReport[0];
            }
            if (onlyRecentCentralReports == null)
            {
                onlyRecentCentralReports = new CentralReport[0];
            }

            if (allUnitReports == null)
            {
                allUnitReports = new UnitReport[0];
            }
            if (allZoneReports == null)
            {
                allZoneReports = new ZoneReport[0];
            }
            if (allStateReports == null)
            {
                allStateReports = new StateReport[0];
            }
            if (allCentralReports == null)
            {
                allCentralReports = new CentralReport[0];
            }

            return(Calculator.GetCalculatedReportData(onlyRecentUnitReports.Select(o =>
            {
                ReportData r = o;
                return r;
            }).ToArray(),
                                                      allUnitReports.Select(o =>
            {
                ReportData r = o;
                return r;
            }).ToArray(),
                                                      onlyRecentZoneReports.Select(o =>
            {
                ReportData r = o;
                return r;
            }).ToArray(),
                                                      allZoneReports.Select(o =>
            {
                ReportData r = o;
                return r;
            }).ToArray(),
                                                      onlyRecentStateReports.Select(o =>
            {
                ReportData r = o;
                return r;
            }).ToArray(),
                                                      allStateReports.Select(o =>
            {
                ReportData r = o;
                return r;
            }).ToArray(),
                                                      onlyRecentCentralReports.Select(o =>
            {
                ReportData r = o;
                return r;
            }).ToArray(),
                                                      allCentralReports.Select(o =>
            {
                ReportData r = o;
                return r;
            }).ToArray()));
        }
        public async Task Handle_Publishes_ExpectedResult()
        {
            DateTimeDbTestExtensions.SetUtcNowToRandomDate();
            var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer,
                                                          s =>
            {
                var username      = DataProvider.Get <string>();
                var organizations = IntegrationTestOrganizationHelper.SetupOrzanizations();
                var central       = organizations.First(o => o.Key == IntegrationTestOrganizationHelper.Central).Value;
                var nswState      = organizations.First(o => o.Key == IntegrationTestOrganizationHelper.NswState).Value;
                var nswZone1      = organizations.First(o => o.Key == IntegrationTestOrganizationHelper.NswZoneOne).Value;
                var lakemba       = organizations.First(o => o.Key == IntegrationTestOrganizationHelper.Lakemba).Value;

                var year1 = 2019;
                var year2 = 2020;

                var period1 = new ReportingPeriod(ReportingFrequency.Monthly, ReportingTerm.One, year1);
                var period2 = new ReportingPeriod(ReportingFrequency.Monthly, ReportingTerm.One, year2);

                var period1ReportingData = new ReportDataBuilder().Build();
                var period2ReportingData = new ReportDataBuilder().Build();

                var period1UnitReport =
                    new UnitReport(DataProvider.Get <string>(), lakemba, period1, period1ReportingData);
                s.Save(period1UnitReport);
                var period2UnitReport =
                    new UnitReport(DataProvider.Get <string>(), lakemba, period2, period2ReportingData);
                s.Save(period2UnitReport);

                var period1ZoneReport =
                    new ZoneReport(DataProvider.Get <string>(), nswZone1, period1, period1ReportingData);
                s.Save(period1ZoneReport);
                var period2ZoneReport =
                    new ZoneReport(DataProvider.Get <string>(), nswZone1, period2, period2ReportingData);
                s.Save(period2ZoneReport);

                var period1StateReport =
                    new StateReport(DataProvider.Get <string>(), nswState, period1, period1ReportingData);
                s.Save(period1StateReport);
                var period2StateReport =
                    new StateReport(DataProvider.Get <string>(), nswState, period2, period2ReportingData);
                s.Save(period2StateReport);

                var period1CentralReport =
                    new CentralReport(DataProvider.Get <string>(), central, period1, period1ReportingData);
                s.Save(period1CentralReport);
                var period2CentralReport =
                    new CentralReport(DataProvider.Get <string>(), central, period2, period2ReportingData);
                s.Save(period2CentralReport);

                var reportIds = new[]
                {
                    period1UnitReport.Id, period2UnitReport.Id, period1ZoneReport.Id, period2ZoneReport.Id,
                    period1StateReport.Id, period2StateReport.Id, period1CentralReport.Id, period2CentralReport.Id,
                };
                var expectedReportData = ReportDataCalculator.GetCalculatedReportData(new[] { period2UnitReport },
                                                                                      new[] { period1UnitReport, period2UnitReport }, new[] { period2ZoneReport },
                                                                                      new[] { period1ZoneReport, period2ZoneReport }, new[] { period2StateReport },
                                                                                      new[] { period1StateReport, period2StateReport }, new[] { period2CentralReport },
                                                                                      new[] { period1CentralReport, period2CentralReport });

                return(new
                {
                    username,
                    expectedReportData,
                    cmd = new ConsolidateReportCommand(reportIds),
                });
            });

            var context = await Endpoint.Act <ConsolidateReportCommandHandler>(AssemblySetupFixture.EndpointTestContainer,
                                                                               (h, ctx) =>
            {
                ctx.SetUsernameOnHeader(testParams.username);
                return(h.Handle(testParams.cmd, ctx));
            });

            var evt = context.ExpectPublish <IConsolidateReportSucceeded>();

            evt.ReportIds.Should().BeEquivalentTo(testParams.cmd.ReportIds);
            evt.ReportData.Should().BeEquivalentTo(testParams.expectedReportData);
            evt.Username.Should().BeEquivalentTo(testParams.username);
        }
        public void GetConsolidatedReportData_Returns_ExpectedReportData()
        {
            DateTimeDbTestExtensions.SetUtcNowToRandomDate();
            var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer, s =>
            {
                var organizations = IntegrationTestOrganizationHelper.SetupOrzanizations();
                var central       = organizations.First(o => o.Key == IntegrationTestOrganizationHelper.Central).Value;
                var nswState      = organizations.First(o => o.Key == IntegrationTestOrganizationHelper.NswState).Value;
                var nswZone1      = organizations.First(o => o.Key == IntegrationTestOrganizationHelper.NswZoneOne).Value;
                var lakemba       = organizations.First(o => o.Key == IntegrationTestOrganizationHelper.Lakemba).Value;

                var year1 = 2019;
                var year2 = 2020;

                var period1 = new ReportingPeriod(ReportingFrequency.Monthly, ReportingTerm.One, year1);
                var period2 = new ReportingPeriod(ReportingFrequency.Monthly, ReportingTerm.One, year2);

                var period1ReportingData = new ReportDataBuilder().Build();
                var period2ReportingData = new ReportDataBuilder().Build();

                var period1UnitReport =
                    new UnitReport(DataProvider.Get <string>(), lakemba, period1, period1ReportingData);
                s.Save(period1UnitReport);
                var period2UnitReport =
                    new UnitReport(DataProvider.Get <string>(), lakemba, period2, period2ReportingData);
                s.Save(period2UnitReport);

                var period1ZoneReport =
                    new ZoneReport(DataProvider.Get <string>(), nswZone1, period1, period1ReportingData);
                s.Save(period1ZoneReport);
                var period2ZoneReport =
                    new ZoneReport(DataProvider.Get <string>(), nswZone1, period2, period2ReportingData);
                s.Save(period2ZoneReport);

                var period1StateReport =
                    new StateReport(DataProvider.Get <string>(), nswState, period1, period1ReportingData);
                s.Save(period1StateReport);
                var period2StateReport =
                    new StateReport(DataProvider.Get <string>(), nswState, period2, period2ReportingData);
                s.Save(period2StateReport);

                var period1CentralReport =
                    new CentralReport(DataProvider.Get <string>(), central, period1, period1ReportingData);
                s.Save(period1CentralReport);
                var period2CentralReport =
                    new CentralReport(DataProvider.Get <string>(), central, period2, period2ReportingData);
                s.Save(period2CentralReport);

                var reportIds = new[]
                {
                    period1UnitReport.Id, period2UnitReport.Id, period1ZoneReport.Id, period2ZoneReport.Id,
                    period1StateReport.Id, period2StateReport.Id, period1CentralReport.Id, period2CentralReport.Id,
                };
                var expectedReportData = ReportDataCalculator.GetCalculatedReportData(new[] { period2UnitReport },
                                                                                      new[] { period1UnitReport, period2UnitReport }, new[] { period2ZoneReport },
                                                                                      new[] { period1ZoneReport, period2ZoneReport }, new[] { period2StateReport },
                                                                                      new[] { period1StateReport, period2StateReport }, new[] { period2CentralReport },
                                                                                      new[] { period1CentralReport, period2CentralReport });
                return(new { reportIds, expectedReportData });
            });
            var result = Endpoint.Act(AssemblySetupFixture.EndpointTestContainer,
                                      c => c.GetInstance <ConsolidatedReportService>().GetConsolidatedReportData(testParams.reportIds));

            result.Should().NotBeNull();
            result.Should().BeEquivalentTo(testParams.expectedReportData);
        }