コード例 #1
0
ファイル: AdminPeriod.razor.cs プロジェクト: fphgov/varolista
        protected async Task HandleSubmit()
        {
            PeriodVMEditContext = new EditContext(AdminPeriodVM);

            if (PeriodVMEditContext.Validate())
            {
                var period = (await PeriodService.GetAsync(x => x.Year == AdminPeriodVM.PeriodeStartDate.Year)).FirstOrDefault();

                if (period != null)
                {
                    period.Description      = AdminPeriodVM.Description.Trim();
                    period.PeriodeStartDate = AdminPeriodVM.PeriodeStartDate;
                    period.PeriodeEndDate   = AdminPeriodVM.PeriodeEndDate;
                    period.PeriodValue      = (decimal)AdminPeriodVM.PeriodValue;
                    PeriodService.Update(period);
                }
                else
                {
                    period = new Period
                    {
                        Year             = AdminPeriodVM.PeriodeStartDate.Year,
                        Description      = AdminPeriodVM.Description.Trim(),
                        PeriodeStartDate = AdminPeriodVM.PeriodeStartDate,
                        PeriodeEndDate   = AdminPeriodVM.PeriodeEndDate,
                        PeriodValue      = (decimal)AdminPeriodVM.PeriodValue,
                        BudgetFrames     = new List <BudgetFrame>()
                    };

                    var regions = await RegionService.GetAsync();

                    var services = await ServiceService.GetAsync(x =>
                                                                 x.ServiceTypeDate <= AdminPeriodVM.PeriodeStartDate &&
                                                                 x.IsActive);

                    foreach (var region in regions)
                    {
                        foreach (var service in services)
                        {
                            period.BudgetFrames.Add(
                                new BudgetFrame
                            {
                                RegionId = region.Id,
                                Year     = AdminPeriodVM.PeriodeStartDate.Year,
                                Service  = service,
                                Head     = 0,
                                Value    = 0
                            });
                        }
                    }
                    await PeriodService.AddAsync(period);
                }
                await PeriodService.SaveChangesAsync(AppUser.Instance.FullName);

                PeriodVMs = Mapper.Map <IEnumerable <PeriodVM> >(await PeriodService.GetAsync());
                ToggleView();
            }
            StateHasChanged();
        }
コード例 #2
0
        public void AddPeriodCorrectly()
        {
            var dbContext = new DbContextOptionsBuilder <ApplicationDbContext>()
                            .UseInMemoryDatabase(Guid.NewGuid().ToString());
            var repository = new EfDeletableEntityRepository <Period>(new ApplicationDbContext(dbContext.Options));

            repository.SaveChangesAsync().GetAwaiter().GetResult();

            var service = new PeriodService(repository);

            _ = service.AddAsync(new DateTime(2020, 5, 1), new DateTime(2020, 5, 5));
            var list = repository.All().ToList();

            Assert.Single(list);
            Assert.Equal(new DateTime(2020, 5, 1), list[0].ArrivalDate);
            Assert.Equal(new DateTime(2020, 5, 5), list[0].DepartDate);
        }