private static ReportData GetZoneReportData() { var reportData = new ReportDataBuilder() .Build(); return(reportData); }
public static UnitReport BuildAndPersistUnitReport(bool submitted, Organization organization, ReportingPeriod reportingPeriod, ISession s) { string description = DataProvider.Get <string>(); var reportingData = new ReportDataBuilder().Build(); var report = new UnitReport(description, organization, reportingPeriod, reportingData); if (submitted) { report.MarkStatusAsSubmitted(); } s.Save(report); return(report); }
protected override void InitializationComplete() { // init _service = ServiceManager.ConfigureService <TransactionService>(); _currencyService = ServiceManager.ConfigureService <CurrencyService>(); _storageService = ServiceManager.ConfigureService <StorageService>(); _currencyExchangeRateService = ServiceManager.ConfigureService <CurrencyExchangeRateService>(); _categoryService = ServiceManager.ConfigureService <CategoryService>(); _settingsService = ServiceManager.ConfigureService <ReportSettingService>(); _builder = new ReportDataBuilder(GlobalVariables.UserId, _service, _currencyService, _currencyExchangeRateService, _categoryService); _chartDataBuilder = new ChartDataBuilder(); // init comboboxes comboChartType.ItemsSource = MultiLangEnumHelper.ToCollection(typeof(ChartType)); comboDataType.ItemsSource = MultiLangEnumHelper.ToCollection(typeof(RecordType)); comboBarChartView.ItemsSource = MultiLangEnumHelper.ToCollection(typeof(BarChartView)); comboSorting.ItemsSource = MultiLangEnumHelper.ToCollection(typeof(Sorting)); comboBarChartSection.ItemsSource = MultiLangEnumHelper.ToCollection(typeof(BarChartSection)); // fill PeriodTypes. exclude custom period var values = new List <object>(); foreach (PeriodType enumItem in Enum.GetValues(typeof(PeriodType))) { if (enumItem != PeriodType.Custom) { values.Add(enumItem); } } comboBarChartPeriod.ItemsSource = MultiLangEnumHelper.ToCollection(typeof(PeriodType), values); // fill category levels source lowestCategoryLevel = _categoryService.GetLowestCategoryLevel(GlobalVariables.UserId); var categoryLevelDictionary = new Dictionary <int, string>(); // add variant "All" categoryLevelDictionary.Add(-1, MultiLangResourceManager.Instance[MultiLangResourceName.All]); for (int i = 0; i <= lowestCategoryLevel; i++) { categoryLevelDictionary.Add(i, (i + 1).ToString()); } comboCategoryLevel.ItemsSource = categoryLevelDictionary; InitializeViewModel(); }
public void PromotePlanToUnitReport_SavesCorrectlyWhenLastYearSubmitted(ReportingFrequency reportingFrequency) { DateTimeDbTestExtensions.SetUtcNowToRandomDate(); var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer, s => { var organizationType = OrganizationType.Unit; var description = DataProvider.Get <string>(); var year = 2019; var reportingTerm = ReportingTerm.One; var organization = new TestObjectBuilder <Organization>() .SetArgument(o => o.OrganizationType, organizationType) .SetArgument(o => o.ReportingFrequency, reportingFrequency) .BuildAndPersist(s); var period1 = new ReportingPeriod(reportingFrequency, reportingTerm, year); var period1ReportingData = new ReportDataBuilder().Build(); var period1UnitReport = new UnitReport(description, organization, period1, period1ReportingData); s.Save(period1UnitReport); return(new { period1UnitReport, }); }); var result = Endpoint.Act(AssemblySetupFixture.EndpointTestContainer, c => { var unitReport = c.GetInstance <UnitReportService>() .PromotePlanToUnitReport(testParams.period1UnitReport.Id); return(new { unitReport }); }); result.unitReport.Should().NotBeNull(); result.unitReport.Should().BeEquivalentTo(testParams.period1UnitReport, e => e.Excluding(p => p.ReportStatus)); result.unitReport.ReportStatus.Should().Be(ReportStatus.PlanPromoted); }
public byte[] ExportAttendance(int groupId, DateTime startDate, DateTime endDate) { var group = _context.Groups.FirstOrDefault(x => x.Id == groupId); if (group == null) { throw new ServiceException("Nie odnaleziono wskazanej grupy."); } var attendancesGroupedByYearAndMonth = GetAttendancesGroupedByYearAndMonth(startDate, endDate, group); if (!attendancesGroupedByYearAndMonth.Any()) { throw new ServiceException($"Brak obecności w podanym zakresie dat."); } List <ReportDataBuilder> reportsDataBuilders = new List <ReportDataBuilder>(); foreach (var keyValuePair in attendancesGroupedByYearAndMonth) { IEnumerable <Attendance> attendancesInMonth = keyValuePair.Value; int month = keyValuePair.Key.Month; int year = keyValuePair.Key.Year; DateTime firstAttendanceInMonth = attendancesInMonth.First().Date; DateTime lastAttendanceInMonth = attendancesInMonth.Last().Date; var people = _context.People.Where(p => p.GroupId == groupId).ToList(); var reportDataBuilder = new ReportDataBuilder(); reportDataBuilder .SetReportName($"{month}-{year}") .SetTitle($"LISTA OBECNOŚCI NA ZAJĘCIACH - TR. SOŁTYSIK grupa {group.Name}") .SetSubTitle($"{year}-{month}") .SetDays(attendancesInMonth.Select(p => p.Date.Day)) .SetPeopleWithAttendance(people.Select(p => (p.FullName, p.Year, GetPersonAttendances(p, attendancesInMonth)))); reportsDataBuilders.Add(reportDataBuilder); } return(ReportGenerator.GetReport(reportsDataBuilders)); }
public async Task Handle_SavesPlan(ReportingFrequency reportingFrequency) { DateTimeDbTestExtensions.SetUtcNowToRandomDate(); var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer, s => { var username = DataProvider.Get <string>(); var year = 2019; var reportingTerm = ReportingTerm.One; var organization = new OrganizationBuilder() .SetOrganizationType(OrganizationType.Unit) .SetReportingFreQuency(reportingFrequency) .BuildAndPersist(s); var report = new UnitReportBuilder() .SetOrganization(organization) .SetReportingPeriod(new ReportingPeriod(reportingFrequency, reportingTerm, year)) .BuildAndPersist(s); var associateMemberData = new TestObjectBuilder <MemberData>() .Build(); var preliminaryMemberData = new TestObjectBuilder <MemberData>() .Build(); var workerMeetingProgramData = new TestObjectBuilder <MeetingProgramData>() .Build(); var supporterMemberData = new TestObjectBuilder <MemberData>() .Build(); var memberMemberData = new TestObjectBuilder <MemberData>() .Build(); PlanData planData = new ReportDataBuilder() .SetAssociateMemberData(associateMemberData) .SetPreliminaryMemberData(preliminaryMemberData) .SetWorkerMeetingProgramData(workerMeetingProgramData) .SetSupporterMemberData(supporterMemberData) .SetMemberMemberData(memberMemberData) .Build(); EntityReference reportRef = report; var expectedEvt = Test.CreateInstance <IUnitPlanUpdated>(e => { e.Organization = organization; e.Username = username; e.UnitReport = reportRef; }); return(new { Cmd = new UpdateUnitPlanCommand(report.Id, planData), Organization = organization, Report = report, username, expectedEvt }); }); var context = await Endpoint.Act <UpdateUnitPlanCommandHandler>(AssemblySetupFixture.EndpointTestContainer, (h, ctx) => { ctx.SetUsernameOnHeader(testParams.username); return(h.Handle(testParams.Cmd, ctx)); }); var evt = context.ExpectPublish <IUnitPlanUpdated>(); Endpoint.AssertOnSqlSessionThat(AssemblySetupFixture.EndpointTestContainer, s => { var unitReport = s.Get <UnitReport>(testParams.Cmd.ReportId); unitReport.Should().NotBeNull(); unitReport.Should().BeEquivalentTo(testParams.Report, e => e.Excluding(p => p.AssociateMemberData) .Excluding(p => p.PreliminaryMemberData) .Excluding(p => p.SupporterMemberData) .Excluding(p => p.WorkerMeetingProgramData) .Excluding(p => p.DawahMeetingProgramData) .Excluding(p => p.StateLeaderMeetingProgramData) .Excluding(p => p.StateOutingMeetingProgramData) .Excluding(p => p.IftarMeetingProgramData) .Excluding(p => p.LearningMeetingProgramData) .Excluding(p => p.SocialDawahMeetingProgramData) .Excluding(p => p.DawahGroupMeetingProgramData) .Excluding(p => p.NextGMeetingProgramData) .Excluding(p => p.CmsMeetingProgramData) .Excluding(p => p.SmMeetingProgramData) .Excluding(p => p.MemberMeetingProgramData) .Excluding(p => p.TafsirMeetingProgramData) .Excluding(p => p.UnitMeetingProgramData) .Excluding(p => p.FamilyVisitMeetingProgramData) .Excluding(p => p.EidReunionMeetingProgramData) .Excluding(p => p.BbqMeetingProgramData) .Excluding(p => p.GatheringMeetingProgramData) .Excluding(p => p.OtherMeetingProgramData) .Excluding(p => p.MemberMemberData) .Excluding(p => p.BaitulMalFinanceData) .Excluding(p => p.ADayMasjidProjectFinanceData) .Excluding(p => p.MasjidTableBankFinanceData) .Excluding(p => p.QardeHasanaSocialWelfareData) .Excluding(p => p.PatientVisitSocialWelfareData) .Excluding(p => p.SocialVisitSocialWelfareData) .Excluding(p => p.TransportSocialWelfareData) .Excluding(p => p.ShiftingSocialWelfareData) .Excluding(p => p.ShoppingSocialWelfareData) .Excluding(p => p.FoodDistributionSocialWelfareData) .Excluding(p => p.CleanUpAustraliaSocialWelfareData) .Excluding(p => p.OtherSocialWelfareData) .Excluding(p => p.BookSaleMaterialData) .Excluding(p => p.BookDistributionMaterialData) .Excluding(p => p.BookLibraryStockData) .Excluding(p => p.OtherSaleMaterialData) .Excluding(p => p.OtherDistributionMaterialData) .Excluding(p => p.OtherLibraryStockData) .Excluding(p => p.VhsSaleMaterialData) .Excluding(p => p.VhsDistributionMaterialData) .Excluding(p => p.VhsLibraryStockData) .Excluding(p => p.EmailDistributionMaterialData) .Excluding(p => p.IpdcLeafletDistributionMaterialData) .Excluding(p => p.GroupStudyTeachingLearningProgramData) .Excluding(p => p.StudyCircleTeachingLearningProgramData) .Excluding(p => p.PracticeDarsTeachingLearningProgramData) .Excluding(p => p.StateLearningCampTeachingLearningProgramData) .Excluding(p => p.QuranStudyTeachingLearningProgramData) .Excluding(p => p.QuranClassTeachingLearningProgramData) .Excluding(p => p.MemorizingAyatTeachingLearningProgramData) .Excluding(p => p.StateLearningSessionTeachingLearningProgramData) .Excluding(p => p.StateQiyamulLailTeachingLearningProgramData) // .Excluding(p => p.StudyCircleForAssociateMemberTeachingLearningProgramData) .Excluding(p => p.HadithTeachingLearningProgramData) .Excluding(p => p.WeekendIslamicSchoolTeachingLearningProgramData) .Excluding(p => p.MemorizingHadithTeachingLearningProgramData) .Excluding(p => p.MemorizingDoaTeachingLearningProgramData) .Excluding(p => p.OtherTeachingLearningProgramData) ); ReportData reportData = unitReport; PlanData planData = reportData; planData.Should().BeEquivalentTo(testParams.Cmd.PlanData); evt.Should().BeEquivalentTo(testParams.expectedEvt, e => e.Excluding(p => p.SerializedData)); evt.SerializedData.Should().NotBe(null); }); }
public async Task Handle_SavesReport(ReportingFrequency reportingFrequency) { DateTimeDbTestExtensions.SetUtcNowToRandomDate(); var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer, s => { var username = DataProvider.Get <string>(); var year = 2019; var reportingTerm = ReportingTerm.One; var organization = new OrganizationBuilder() .SetOrganizationType(OrganizationType.Central) .SetReportingFreQuency(reportingFrequency) .BuildAndPersist(s); var report = new CentralReportBuilder() .SetOrganization(organization) .SetReportingPeriod(new ReportingPeriod(reportingFrequency, reportingTerm, year)) .Build(); report.MarkStatusAsPlanPromoted(); s.Save(report); var memberMemberData = new TestObjectBuilder <MemberData>() .Build(); var associateMemberData = new TestObjectBuilder <MemberData>() .Build(); var preliminaryMemberData = new TestObjectBuilder <MemberData>() .Build(); //Todo pass random data once supporterMember is added to the CentralReport var supporterMemberData = new TestObjectBuilder <MemberData>() .Build(); var workerMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var dawahMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var stateLeaderMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var stateOutingMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var iftarMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var learningMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var socialDawahMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var dawahGroupMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var nextGMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var cmsMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var smMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var memberMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var tafsirMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var unitMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var familyVisitMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var eidReunionMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var bbqMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var gatheringMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var otherMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var groupStudyTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var studyCircleTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var practiceDarsTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var stateLearningCampTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var quranStudyTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var quranClassTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var memorizingAyatTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var stateLearningSessionTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var stateQiyamulLailTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var studyCircleForAssociateMemberTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var hadithTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var weekendIslamicSchoolTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var memorizingHadithTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var memorizingDoaTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var otherTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var baitulMalFinanceData = FinanceData.Default(); var aDayMasjidProjectFinanceData = FinanceData.Default(); var masjidTableBankFinanceData = FinanceData.Default(); var qardeHasanaSocialWelfareData = SocialWelfareData.Default(); var patientVisitSocialWelfareData = SocialWelfareData.Default(); var socialVisitSocialWelfareData = SocialWelfareData.Default(); var transportSocialWelfareData = SocialWelfareData.Default(); var shiftingSocialWelfareData = SocialWelfareData.Default(); var shoppingSocialWelfareData = SocialWelfareData.Default(); var foodDistributionSocialWelfareData = SocialWelfareData.Default(); var cleanUpAustraliaSocialWelfareData = SocialWelfareData.Default(); var otherSocialWelfareData = SocialWelfareData.Default(); var bookSaleMaterialData = MaterialData.Default(); var bookDistributionMaterialData = MaterialData.Default(); var bookLibraryStockData = LibraryStockData.Default(); var otherSaleMaterialData = MaterialData.Default(); var otherDistributionMaterialData = MaterialData.Default(); var otherLibraryStockData = LibraryStockData.Default(); var vhsSaleMaterialData = MaterialData.Default(); var vhsDistributionMaterialData = MaterialData.Default(); var vhsLibraryStockData = LibraryStockData.Default(); var emailDistributionMaterialData = MaterialData.Default(); var ipdcLeafletDistributionMaterialData = MaterialData.Default(); //var bookLibraryStockData = LibraryStockData.Default(); //var vhsLibraryStockData = LibraryStockData.Default(); var comment = DataProvider.Get <string>(); ReportUpdateData centralReportUpdateData = new ReportDataBuilder() .SetMemberMemberData(memberMemberData) .SetAssociateMemberData(associateMemberData) .SetPreliminaryMemberData(preliminaryMemberData) .SetSupporterMemberData(supporterMemberData) .SetWorkerMeetingProgramData(workerMeetingProgramData) .SetDawahMeetingProgramData(dawahMeetingProgramData) .SetStateLeaderMeetingProgramData(stateLeaderMeetingProgramData) .SetStateOutingMeetingProgramData(stateOutingMeetingProgramData) .SetIftarMeetingProgramData(iftarMeetingProgramData) .SetLearningMeetingProgramData(learningMeetingProgramData) .SetSocialDawahMeetingProgramData(socialDawahMeetingProgramData) .SetDawahGroupMeetingProgramData(dawahGroupMeetingProgramData) .SetNextGMeetingProgramData(nextGMeetingProgramData) .SetCmsMeetingProgramData(cmsMeetingProgramData) .SetSmMeetingProgramData(smMeetingProgramData) .SetMemberMeetingProgramData(memberMeetingProgramData) .SetTafsirMeetingProgramData(tafsirMeetingProgramData) .SetUnitMeetingProgramData(unitMeetingProgramData) .SetFamilyVisitMeetingProgramData(familyVisitMeetingProgramData) .SetEidReunionMeetingProgramData(eidReunionMeetingProgramData) .SetBbqMeetingProgramData(bbqMeetingProgramData) .SetGatheringMeetingProgramData(gatheringMeetingProgramData) .SetOtherMeetingProgramData(otherMeetingProgramData) .SetGroupStudyTeachingLearningProgramData(groupStudyTeachingLearningProgramData) .SetStudyCircleTeachingLearningProgramData(studyCircleTeachingLearningProgramData) .SetPracticeDarsTeachingLearningProgramData(practiceDarsTeachingLearningProgramData) .SetStateLearningCampTeachingLearningProgramData(stateLearningCampTeachingLearningProgramData) .SetQuranStudyTeachingLearningProgramData(quranStudyTeachingLearningProgramData) .SetQuranClassTeachingLearningProgramData(quranClassTeachingLearningProgramData) .SetMemorizingAyatTeachingLearningProgramData(memorizingAyatTeachingLearningProgramData) .SetStateLearningSessionTeachingLearningProgramData(stateLearningSessionTeachingLearningProgramData) .SetStateQiyamulLailTeachingLearningProgramData(stateQiyamulLailTeachingLearningProgramData) .SetBaitulMalFinanceData(baitulMalFinanceData) .SetADayMasjidProjectFinanceData(aDayMasjidProjectFinanceData) .SetMasjidTableBankFinanceData(masjidTableBankFinanceData) .SetQardeHasanaSocialWelfareData(qardeHasanaSocialWelfareData) .SetPatientVisitSocialWelfareData(patientVisitSocialWelfareData) .SetSocialVisitSocialWelfareData(socialVisitSocialWelfareData) .SetTransportSocialWelfareData(transportSocialWelfareData) .SetShiftingSocialWelfareData(shiftingSocialWelfareData) .SetShoppingSocialWelfareData(shoppingSocialWelfareData) .SetFoodDistributionSocialWelfareData(foodDistributionSocialWelfareData) .SetCleanUpAustraliaSocialWelfareData(cleanUpAustraliaSocialWelfareData) .SetOtherSocialWelfareData(otherSocialWelfareData) .SetBookSaleMaterialData(bookSaleMaterialData) .SetBookDistributionMaterialData(bookDistributionMaterialData) .SetBookLibraryStockData(bookLibraryStockData) .SetOtherSaleMaterialData(otherSaleMaterialData) .SetOtherDistributionMaterialData(otherDistributionMaterialData) .SetOtherLibraryStockData(otherLibraryStockData) .SetVhsSaleMaterialData(vhsSaleMaterialData) .SetVhsDistributionMaterialData(vhsDistributionMaterialData) .SetVhsLibraryStockData(vhsLibraryStockData) .SetEmailDistributionMaterialData(emailDistributionMaterialData) .SetIpdcLeafletDistributionMaterialData(ipdcLeafletDistributionMaterialData) .SetGroupStudyTeachingLearningProgramData(groupStudyTeachingLearningProgramData) .SetStudyCircleTeachingLearningProgramData(studyCircleTeachingLearningProgramData) .SetPracticeDarsTeachingLearningProgramData(practiceDarsTeachingLearningProgramData) .SetStateLearningCampTeachingLearningProgramData(stateLearningCampTeachingLearningProgramData) .SetQuranStudyTeachingLearningProgramData(quranStudyTeachingLearningProgramData) .SetQuranClassTeachingLearningProgramData(quranClassTeachingLearningProgramData) .SetMemorizingAyatTeachingLearningProgramData(memorizingAyatTeachingLearningProgramData) .SetStateLearningSessionTeachingLearningProgramData(stateLearningSessionTeachingLearningProgramData) .SetStateQiyamulLailTeachingLearningProgramData(stateQiyamulLailTeachingLearningProgramData) .SetStudyCircleForAssociateMemberTeachingLearningProgramData(studyCircleForAssociateMemberTeachingLearningProgramData) .SetHadithTeachingLearningProgramData(hadithTeachingLearningProgramData) .SetWeekendIslamicSchoolTeachingLearningProgramData(weekendIslamicSchoolTeachingLearningProgramData) .SetMemorizingHadithTeachingLearningProgramData(memorizingHadithTeachingLearningProgramData) .SetMemorizingDoaTeachingLearningProgramData(memorizingDoaTeachingLearningProgramData) .SetOtherTeachingLearningProgramData(otherTeachingLearningProgramData) .SetComment(comment) .Build(); EntityReference reportRef = report; var expectedEvt = Test.CreateInstance <ICentralReportUpdated>(e => { e.Organization = organization; e.Username = username; e.CentralReport = reportRef; }); return(new { Cmd = new UpdateCentralReportCommand(report.Id, centralReportUpdateData), Report = report, username, expectedEvt }); }); var context = await Endpoint.Act <UpdateCentralReportCommandHandler>(AssemblySetupFixture.EndpointTestContainer, (h, ctx) => { ctx.SetUsernameOnHeader(testParams.username); return(h.Handle(testParams.Cmd, ctx)); }); var evt = context.ExpectPublish <ICentralReportUpdated>(); Endpoint.AssertOnSqlSessionThat(AssemblySetupFixture.EndpointTestContainer, s => { var centralReport = s.Get <CentralReport>(testParams.Cmd.ReportId); centralReport.Should().NotBeNull(); centralReport.Should().BeEquivalentTo(testParams.Report, e => e.Excluding(p => p.MemberMemberData) .Excluding(p => p.AssociateMemberData) .Excluding(p => p.PreliminaryMemberData) .Excluding(p => p.SupporterMemberData) .Excluding(p => p.WorkerMeetingProgramData) .Excluding(p => p.DawahMeetingProgramData) .Excluding(p => p.StateLeaderMeetingProgramData) .Excluding(p => p.StateOutingMeetingProgramData) .Excluding(p => p.IftarMeetingProgramData) .Excluding(p => p.LearningMeetingProgramData) .Excluding(p => p.SocialDawahMeetingProgramData) .Excluding(p => p.DawahGroupMeetingProgramData) .Excluding(p => p.NextGMeetingProgramData) .Excluding(p => p.CmsMeetingProgramData) .Excluding(p => p.SmMeetingProgramData) .Excluding(p => p.MemberMeetingProgramData) .Excluding(p => p.TafsirMeetingProgramData) .Excluding(p => p.UnitMeetingProgramData) .Excluding(p => p.FamilyVisitMeetingProgramData) .Excluding(p => p.EidReunionMeetingProgramData) .Excluding(p => p.BbqMeetingProgramData) .Excluding(p => p.GatheringMeetingProgramData) .Excluding(p => p.OtherMeetingProgramData) .Excluding(p => p.GroupStudyTeachingLearningProgramData) .Excluding(p => p.StudyCircleTeachingLearningProgramData) .Excluding(p => p.PracticeDarsTeachingLearningProgramData) .Excluding(p => p.StateLearningCampTeachingLearningProgramData) .Excluding(p => p.QuranStudyTeachingLearningProgramData) .Excluding(p => p.QuranClassTeachingLearningProgramData) .Excluding(p => p.MemorizingAyatTeachingLearningProgramData) .Excluding(p => p.StateLearningSessionTeachingLearningProgramData) .Excluding(p => p.StateQiyamulLailTeachingLearningProgramData) .Excluding(p => p.StudyCircleForAssociateMemberTeachingLearningProgramData) .Excluding(p => p.HadithTeachingLearningProgramData) .Excluding(p => p.WeekendIslamicSchoolTeachingLearningProgramData) .Excluding(p => p.MemorizingHadithTeachingLearningProgramData) .Excluding(p => p.MemorizingDoaTeachingLearningProgramData) .Excluding(p => p.OtherTeachingLearningProgramData) .Excluding(p => p.BookSaleMaterialData) .Excluding(p => p.BookDistributionMaterialData) .Excluding(p => p.BookLibraryStockData) .Excluding(p => p.OtherSaleMaterialData) .Excluding(p => p.OtherDistributionMaterialData) .Excluding(p => p.OtherLibraryStockData) .Excluding(p => p.VhsSaleMaterialData) .Excluding(p => p.VhsDistributionMaterialData) .Excluding(p => p.VhsLibraryStockData) .Excluding(p => p.EmailDistributionMaterialData) .Excluding(p => p.IpdcLeafletDistributionMaterialData) .Excluding(p => p.BaitulMalFinanceData) .Excluding(p => p.ADayMasjidProjectFinanceData) .Excluding(p => p.MasjidTableBankFinanceData) .Excluding(p => p.QardeHasanaSocialWelfareData) .Excluding(p => p.PatientVisitSocialWelfareData) .Excluding(p => p.SocialVisitSocialWelfareData) .Excluding(p => p.TransportSocialWelfareData) .Excluding(p => p.ShiftingSocialWelfareData) .Excluding(p => p.ShoppingSocialWelfareData) .Excluding(p => p.FoodDistributionSocialWelfareData) .Excluding(p => p.CleanUpAustraliaSocialWelfareData) .Excluding(p => p.OtherSocialWelfareData) .Excluding(p => p.Comment) ); ReportData reportData = centralReport; ReportUpdateData reportUpdateData = reportData; reportUpdateData.Should().BeEquivalentTo(testParams.Cmd.ReportUpdateData); evt.Should().BeEquivalentTo(testParams.expectedEvt, e => e.Excluding(p => p.SerializedData)); evt.SerializedData.Should().NotBe(null); }); }
public async Task Handle_SavesPlan(ReportingFrequency reportingFrequency) { DateTimeDbTestExtensions.SetUtcNowToRandomDate(); var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer, s => { var username = DataProvider.Get <string>(); var year = 2019; var reportingTerm = ReportingTerm.One; var organization = new OrganizationBuilder() .SetOrganizationType(OrganizationType.State) .SetReportingFreQuency(reportingFrequency) .BuildAndPersist(s); var associateMemberData = new TestObjectBuilder <MemberData>() .Build(); var preliminaryMemberData = new TestObjectBuilder <MemberData>() .Build(); PlanData planData = new ReportDataBuilder() .SetAssociateMemberData(associateMemberData) .SetPreliminaryMemberData(preliminaryMemberData) .Build(); var report = new StateReportBuilder() .SetOrganization(organization) .SetReportingPeriod(new ReportingPeriod(reportingFrequency, reportingTerm, year)) .BuildAndPersist(s); report.UpdatePlan(planData); s.Save(report); EntityReference reportRef = report; var expectedEvt = Test.CreateInstance <IStatePlanPromoted>(e => { e.Organization = organization; e.Username = username; e.StateReport = reportRef; }); return(new { Cmd = new PromotePlanToStateReportCommand(report.Id), Report = report, username, expectedEvt }); }); var context = await Endpoint.Act <PromotePlanToStateReportCommandHandler>(AssemblySetupFixture.EndpointTestContainer, (h, ctx) => { ctx.SetUsernameOnHeader(testParams.username); return(h.Handle(testParams.Cmd, ctx)); }); var evt = context.ExpectPublish <IStatePlanPromoted>(); Endpoint.AssertOnSqlSessionThat(AssemblySetupFixture.EndpointTestContainer, s => { var stateReport = s.Get <StateReport>(testParams.Cmd.PlanId); stateReport.Should().NotBeNull(); stateReport.Should().BeEquivalentTo(testParams.Report, e => e.Excluding(p => p.ReportStatus)); stateReport.ReportStatus.Should().Be(ReportStatus.PlanPromoted); evt.Should().BeEquivalentTo(testParams.expectedEvt, e => e.Excluding(p => p.SerializedData)); evt.SerializedData.Should().NotBe(null); }); }
public void CreateNewUnitPlanAi_SavesCorrectlyWhenLastYearSubmitted(ReportingFrequency reportingFrequency) { DateTimeDbTestExtensions.SetUtcNowToRandomDate(); var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer, s => { var organizationType = OrganizationType.Unit; var description = DataProvider.Get <string>(); var year = 2019; var reportingTerm = ReportingTerm.One; var organization = new TestObjectBuilder <Organization>() .SetArgument(o => o.OrganizationType, organizationType) .SetArgument(o => o.ReportingFrequency, reportingFrequency) .BuildAndPersist(s); OrganizationReference organizationRef = organization; var reportingPeriod = new ReportingPeriod(reportingFrequency, reportingTerm, year); var lastPeriod1 = reportingPeriod.GetReportingPeriodOfPreviousTerm(); var lastPeriod1ReportingData = new ReportDataBuilder().Build(); var lastPeriod1UnitReport = new UnitReport(description, organization, lastPeriod1, lastPeriod1ReportingData); lastPeriod1UnitReport.MarkStatusAsSubmitted(); s.Save(lastPeriod1UnitReport); var lastPeriod2 = lastPeriod1.GetReportingPeriodOfPreviousTerm(); var lastPeriod2ReportingData = new ReportDataBuilder().Build(); var lastPeriod2UnitReport = new UnitReport(description, organization, lastPeriod2, lastPeriod2ReportingData); lastPeriod2UnitReport.MarkStatusAsSubmitted(); s.Save(lastPeriod2UnitReport); var expected = new UnitReportBuilder() .SetDescription(description) .SetOrganization(organization) .SetReportingPeriod(new ReportingPeriod(reportingFrequency, reportingTerm, year)) .Build(); return(new { description, organizationRef, reportingPeriod, lastPeriod1UnitReport, expected }); }); var result = Endpoint.Act(AssemblySetupFixture.EndpointTestContainer, c => { var unitReport = c.GetInstance <UnitReportFactory>() .CreateNewUnitPlanAi(testParams.description, testParams.organizationRef, testParams.reportingPeriod.ReportingTerm, testParams.reportingPeriod.Year, reportingFrequency); return(new { unitReport }); }); result.unitReport.Should().NotBeNull(); result.unitReport.Should().BeEquivalentTo(testParams.expected, e => e.Excluding(p => p.Id) .Excluding(p => p.AssociateMemberData) .Excluding(p => p.PreliminaryMemberData) .Excluding(p => p.WorkerMeetingProgramData) .Excluding(p => p.SupporterMemberData) .Excluding(p => p.DawahMeetingProgramData) .Excluding(p => p.MemberMemberData)); TestHelper.MemberDataForCreateUnitPlanShouldBeEquivalent(result.unitReport.AssociateMemberData, testParams.lastPeriod1UnitReport.AssociateMemberData); TestHelper.MemberDataForCreateUnitPlanShouldBeEquivalent(result.unitReport.PreliminaryMemberData, testParams.lastPeriod1UnitReport.PreliminaryMemberData); result.unitReport.PreliminaryMemberData.Should().BeEquivalentTo(testParams.lastPeriod1UnitReport.WorkerMeetingProgramData); }
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 PromotePlanToUnitReportAi_SavesCorrectlyWhenLastYearSubmitted(ReportingFrequency reportingFrequency) { DateTimeDbTestExtensions.SetUtcNowToRandomDate(); var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer, s => { var organizationType = OrganizationType.Unit; var description = DataProvider.Get <string>(); var year = 2019; var reportingTerm = ReportingTerm.One; var organization = new TestObjectBuilder <Organization>() .SetArgument(o => o.OrganizationType, organizationType) .SetArgument(o => o.ReportingFrequency, reportingFrequency) .BuildAndPersist(s); var period1 = new ReportingPeriod(reportingFrequency, reportingTerm, year); var period1ReportingData = new ReportDataBuilder().Build(); var period1UnitReport = new UnitReport(description, organization, period1, period1ReportingData); s.Save(period1UnitReport); var lastPeriod2 = period1.GetReportingPeriodOfPreviousTerm(); var lastPeriod2ReportingData = new ReportDataBuilder().Build(); var lastPeriod2UnitReport = new UnitReport(description, organization, lastPeriod2, lastPeriod2ReportingData); lastPeriod2UnitReport.MarkStatusAsSubmitted(); s.Save(lastPeriod2UnitReport); return(new { period1UnitReport, lastPeriod2UnitReport }); }); var result = Endpoint.Act(AssemblySetupFixture.EndpointTestContainer, c => { var unitReport = c.GetInstance <UnitReportService>() .PromotePlanToUnitReportAi(testParams.period1UnitReport.Id); return(new { unitReport }); }); result.unitReport.Should().NotBeNull(); result.unitReport.Should().BeEquivalentTo(testParams.period1UnitReport, e => e.Excluding(p => p.ReportStatus) .Excluding(p => p.AssociateMemberData) .Excluding(p => p.PreliminaryMemberData) .Excluding(p => p.WorkerMeetingProgramData)); result.unitReport.ReportStatus.Should().Be(ReportStatus.PlanPromoted); result.unitReport.AssociateMemberData.UpgradeTarget.Should() .Be(testParams.period1UnitReport.AssociateMemberData.UpgradeTarget); result.unitReport.AssociateMemberData.LastPeriod.Should() .Be(testParams.period1UnitReport.AssociateMemberData.LastPeriod); result.unitReport.AssociateMemberData.ThisPeriod.Should() .Be(testParams.lastPeriod2UnitReport.AssociateMemberData.ThisPeriod); result.unitReport.PreliminaryMemberData.UpgradeTarget.Should() .Be(testParams.period1UnitReport.PreliminaryMemberData.UpgradeTarget); result.unitReport.PreliminaryMemberData.LastPeriod.Should() .Be(testParams.period1UnitReport.PreliminaryMemberData.LastPeriod); result.unitReport.PreliminaryMemberData.ThisPeriod.Should() .Be(testParams.lastPeriod2UnitReport.PreliminaryMemberData.ThisPeriod); //Worker meeting values should be initial values. Should not set last period values (as that will be irrelevant) result.unitReport.WorkerMeetingProgramData.Target.Should() .Be(testParams.period1UnitReport.WorkerMeetingProgramData.Target); result.unitReport.WorkerMeetingProgramData.Actual.Should() .Be(testParams.period1UnitReport.WorkerMeetingProgramData.Actual); result.unitReport.WorkerMeetingProgramData.AverageAttendance.Should() .Be(testParams.period1UnitReport.WorkerMeetingProgramData.AverageAttendance); }
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); }