private async Task <RegionAnnualReport> SetMembersInfoAsync(RegionAnnualReport regionAnnualReport) { var membersIfo = (await _repositoryWrapper.RegionAnnualReports.GetRegionMembersInfoAsync( regionId: regionAnnualReport.RegionId, year: regionAnnualReport.Date.Year, getGeneral: true, page: 1, pageSize: 1)).ToList()[0]; regionAnnualReport.NumberOfSeigneurMembers = CheckNull(membersIfo.NumberOfSeigneurMembers); regionAnnualReport.NumberOfSeigneurSupporters = CheckNull(membersIfo.NumberOfSeigneurSupporters); regionAnnualReport.NumberOfSeniorPlastynMembers = CheckNull(membersIfo.NumberOfSeniorPlastynMembers); regionAnnualReport.NumberOfSeniorPlastynSupporters = CheckNull(membersIfo.NumberOfSeniorPlastynSupporters); regionAnnualReport.NumberOfUnatstvaSkobVirlyts = CheckNull(membersIfo.NumberOfUnatstvaSkobVirlyts); regionAnnualReport.NumberOfUnatstvaProspectors = CheckNull(membersIfo.NumberOfUnatstvaProspectors); regionAnnualReport.NumberOfUnatstvaMembers = CheckNull(membersIfo.NumberOfUnatstvaMembers); regionAnnualReport.NumberOfUnatstvaSupporters = CheckNull(membersIfo.NumberOfUnatstvaSupporters); regionAnnualReport.NumberOfUnatstvaNoname = CheckNull(membersIfo.NumberOfUnatstvaNoname); regionAnnualReport.NumberOfNovatstva = CheckNull(membersIfo.NumberOfNovatstva); regionAnnualReport.NumberOfPtashata = CheckNull(membersIfo.NumberOfPtashata); regionAnnualReport.NumberOfSeatsPtashat = CheckNull(membersIfo.NumberOfSeatsPtashat); regionAnnualReport.NumberOfIndependentRiy = CheckNull(membersIfo.NumberOfIndependentRiy); regionAnnualReport.NumberOfClubs = CheckNull(membersIfo.NumberOfClubs); regionAnnualReport.NumberOfIndependentGroups = CheckNull(membersIfo.NumberOfIndependentGroups); regionAnnualReport.NumberOfPlastpryiatMembers = CheckNull(membersIfo.NumberOfPlastpryiatMembers); regionAnnualReport.NumberOfBeneficiaries = CheckNull(membersIfo.NumberOfBeneficiaries); regionAnnualReport.NumberOfHonoraryMembers = CheckNull(membersIfo.NumberOfHonoraryMembers); regionAnnualReport.NumberOfAdministrators = CheckNull(membersIfo.NumberOfAdministrators); regionAnnualReport.NumberOfTeacherAdministrators = CheckNull(membersIfo.NumberOfTeacherAdministrators); regionAnnualReport.NumberOfTeachers = CheckNull(membersIfo.NumberOfTeachers); return(regionAnnualReport); }
private MembersStatistic GetMembersStatisticAsync(RegionAnnualReport regionAnnualReport) { if (regionAnnualReport != null) { return(new MembersStatistic() { NumberOfPtashata = regionAnnualReport.NumberOfPtashata, NumberOfNovatstva = regionAnnualReport.NumberOfNovatstva, NumberOfUnatstvaNoname = regionAnnualReport.NumberOfUnatstvaNoname, NumberOfUnatstvaSupporters = regionAnnualReport.NumberOfUnatstvaSupporters, NumberOfUnatstvaMembers = regionAnnualReport.NumberOfUnatstvaMembers, NumberOfUnatstvaProspectors = regionAnnualReport.NumberOfUnatstvaProspectors, NumberOfUnatstvaSkobVirlyts = regionAnnualReport.NumberOfUnatstvaSkobVirlyts, NumberOfSeniorPlastynSupporters = regionAnnualReport.NumberOfSeniorPlastynSupporters, NumberOfSeniorPlastynMembers = regionAnnualReport.NumberOfSeniorPlastynMembers, NumberOfSeigneurSupporters = regionAnnualReport.NumberOfSeigneurSupporters, NumberOfSeigneurMembers = regionAnnualReport.NumberOfSeigneurMembers }); } return(new MembersStatistic()); }
///<inheritdoc/> public async Task <RegionAnnualReportDTO> CreateByNameAsync(User claimsPrincipal, int id, int year, RegionAnnualReportQuestions regionAnnualReportQuestions) { var region = await _repositoryWrapper.Region.GetFirstOrDefaultAsync(a => a.ID == id); if (!await _regionAccessService.HasAccessAsync(claimsPrincipal, region.ID)) { throw new UnauthorizedAccessException("User doesn't have access"); } if (await CheckCreatedAsync(id, year)) { throw new InvalidOperationException("Report is already crated!"); } var annualReports = (await _repositoryWrapper.AnnualReports.GetAllAsync(a => a.Date.Year == year && a.City.RegionId == id && a.Status == AnnualReportStatus.Confirmed)) .Where(result => result != null).ToList(); var membersStatistics = (await _repositoryWrapper.MembersStatistics.GetAllAsync(predicate: m => m.AnnualReport.City.RegionId == id)) .Where(result => result != null).ToList(); var regionAnnualReport = new RegionAnnualReport() { RegionName = region.RegionName, RegionId = id, Date = DateTime.Now, NumberOfSeigneurMembers = membersStatistics.Select(x => x.NumberOfSeigneurMembers).Sum(), NumberOfSeigneurSupporters = membersStatistics.Select(x => x.NumberOfSeigneurSupporters).Sum(), NumberOfSeniorPlastynMembers = membersStatistics.Select(x => x.NumberOfSeniorPlastynMembers).Sum(), NumberOfSeniorPlastynSupporters = membersStatistics.Select(x => x.NumberOfSeniorPlastynSupporters).Sum(), NumberOfUnatstvaSkobVirlyts = membersStatistics.Select(x => x.NumberOfUnatstvaSkobVirlyts).Sum(), NumberOfUnatstvaProspectors = membersStatistics.Select(x => x.NumberOfUnatstvaProspectors).Sum(), NumberOfUnatstvaMembers = membersStatistics.Select(x => x.NumberOfUnatstvaMembers).Sum(), NumberOfUnatstvaSupporters = membersStatistics.Select(x => x.NumberOfUnatstvaSupporters).Sum(), NumberOfUnatstvaNoname = membersStatistics.Select(x => x.NumberOfUnatstvaNoname).Sum(), NumberOfNovatstva = membersStatistics.Select(x => x.NumberOfNovatstva).Sum(), NumberOfPtashata = membersStatistics.Select(x => x.NumberOfPtashata).Sum(), NumberOfSeatsPtashat = annualReports.Select(x => x.NumberOfSeatsPtashat).Sum(), NumberOfIndependentRiy = annualReports.Select(x => x.NumberOfIndependentRiy).Sum(), NumberOfClubs = annualReports.Select(x => x.NumberOfClubs).Sum(), NumberOfIndependentGroups = annualReports.Select(x => x.NumberOfIndependentGroups).Sum(), NumberOfPlastpryiatMembers = annualReports.Select(x => x.NumberOfPlastpryiatMembers).Sum(), NumberOfBeneficiaries = annualReports.Select(x => x.NumberOfBeneficiaries).Sum(), NumberOfHonoraryMembers = annualReports.Select(x => x.NumberOfHonoraryMembers).Sum(), NumberOfAdministrators = annualReports.Select(x => x.NumberOfAdministrators).Sum(), NumberOfTeacherAdministrators = annualReports.Select(x => x.NumberOfTeacherAdministrators).Sum(), NumberOfTeachers = annualReports.Select(x => x.NumberOfTeachers).Sum(), StateOfPreparation = regionAnnualReportQuestions.StateOfPreparation, Characteristic = regionAnnualReportQuestions.Characteristic, ChurchCooperation = regionAnnualReportQuestions.ChurchCooperation, InvolvementOfVolunteers = regionAnnualReportQuestions.InvolvementOfVolunteers, ImportantNeeds = regionAnnualReportQuestions.ImportantNeeds, SocialProjects = regionAnnualReportQuestions.SocialProjects, StatusOfStrategy = regionAnnualReportQuestions.StatusOfStrategy, SuccessStories = regionAnnualReportQuestions.SuccessStories, ProblemSituations = regionAnnualReportQuestions.ProblemSituations, TrainedNeeds = regionAnnualReportQuestions.TrainedNeeds, PublicFunding = regionAnnualReportQuestions.PublicFunding, Fundraising = regionAnnualReportQuestions.Fundraising }; _repositoryWrapper.RegionAnnualReports.Create(regionAnnualReport); await _repositoryWrapper.SaveAsync(); return(_mapper.Map <RegionAnnualReportDTO>(regionAnnualReport)); }
///<inheritdoc/> public async Task <RegionAnnualReportDTO> CreateByNameAsync(User claimsPrincipal, int id, int year, RegionAnnualReportQuestions regionAnnualReportQuestions) { var region = await _repositoryWrapper.Region.GetFirstOrDefaultAsync(a => a.ID == id); if (!await _regionAccessService.HasAccessAsync(claimsPrincipal, region.ID)) { throw new UnauthorizedAccessException("User doesn't have access"); } if (await CheckCreatedAsync(id, year)) { throw new InvalidOperationException("Report is already created!"); } DateTime reportDate; if (year == DateTime.Now.Year) { reportDate = DateTime.Now; } else { reportDate = new DateTime(year, 12, 31); } var regionAnnualReport = new RegionAnnualReport() { RegionName = region.RegionName, RegionId = id, Date = reportDate, StateOfPreparation = regionAnnualReportQuestions.StateOfPreparation, Characteristic = regionAnnualReportQuestions.Characteristic, ChurchCooperation = regionAnnualReportQuestions.ChurchCooperation, InvolvementOfVolunteers = regionAnnualReportQuestions.InvolvementOfVolunteers, ImportantNeeds = regionAnnualReportQuestions.ImportantNeeds, SocialProjects = regionAnnualReportQuestions.SocialProjects, StatusOfStrategy = regionAnnualReportQuestions.StatusOfStrategy, SuccessStories = regionAnnualReportQuestions.SuccessStories, ProblemSituations = regionAnnualReportQuestions.ProblemSituations, TrainedNeeds = regionAnnualReportQuestions.TrainedNeeds, PublicFunding = regionAnnualReportQuestions.PublicFunding, Fundraising = regionAnnualReportQuestions.Fundraising }; regionAnnualReport = await SetMembersInfoAsync(regionAnnualReport); _repositoryWrapper.RegionAnnualReports.Create(regionAnnualReport); await _repositoryWrapper.SaveAsync(); return(_mapper.Map <RegionAnnualReportDTO>(regionAnnualReport)); }