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);
        }
Пример #2
0
 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());
 }
Пример #3
0
        ///<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));
        }