コード例 #1
0
        public async Task <int> AddAsync(string id, int noOfPeople)
        {
            IEnumerable <Period> periods = this.periodRepository
                                           .All()
                                           .ToList();
            Period period = periods.OrderByDescending(x => x.Id).FirstOrDefault();

            IEnumerable <Payment> payments = this.paymentRepository
                                             .All()
                                             .ToList();
            Payment payment = payments.OrderByDescending(x => x.Id).FirstOrDefault();

            IEnumerable <RelaxProgram> relaxPrograms = this.relaxProgramRepository
                                                       .All()
                                                       .ToList();
            RelaxProgram relaxProgram = relaxPrograms.OrderByDescending(x => x.Id).FirstOrDefault();

            var reservation = new Reservation
            {
                NoOfPeople        = noOfPeople,
                PeriodId          = period.Id,
                PaymentId         = payment.Id,
                RelaxProgramId    = relaxProgram.Id,
                ApplicationUserId = id,
            };

            await this.reservationRepository.AddAsync(reservation);

            await this.reservationRepository.SaveChangesAsync();

            return(reservation.Id);
        }
コード例 #2
0
        public void AddReservationCorrectly()
        {
            var dbContext = new DbContextOptionsBuilder <ApplicationDbContext>()
                            .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var repoRelaxProgram = new EfDeletableEntityRepository <RelaxProgram>(new ApplicationDbContext(dbContext.Options));

            repoRelaxProgram.SaveChangesAsync().GetAwaiter().GetResult();

            var repoPayment = new EfDeletableEntityRepository <Payment>(new ApplicationDbContext(dbContext.Options));

            repoPayment.SaveChangesAsync().GetAwaiter().GetResult();

            var repoPeriod = new EfDeletableEntityRepository <Period>(new ApplicationDbContext(dbContext.Options));

            repoPeriod.SaveChangesAsync().GetAwaiter().GetResult();

            var repoReservation = new EfDeletableEntityRepository <Reservation>(new ApplicationDbContext(dbContext.Options));

            repoReservation.SaveChangesAsync().GetAwaiter().GetResult();

            Payment payment = new Payment
            {
                AmountPaid     = 1000,
                DocumentNumber = "Plategno 125/15.04.2020",
            };

            repoPayment.AddAsync(payment);
            repoPayment.SaveChangesAsync().GetAwaiter().GetResult();

            RelaxProgram relaxProgram = new RelaxProgram
            {
                EcoTrail     = "Yes",
                Party        = "Yes",
                SwimmingPool = "Yes",
            };

            repoRelaxProgram.AddAsync(relaxProgram);
            repoRelaxProgram.SaveChangesAsync().GetAwaiter().GetResult();

            Period period = new Period
            {
                ArrivalDate = new DateTime(2020, 5, 1),
                DepartDate  = new DateTime(2020, 5, 5),
            };

            repoPeriod.AddAsync(period);
            repoPeriod.SaveChangesAsync().GetAwaiter().GetResult();

            var service = new ReservationService(repoRelaxProgram, repoPayment, repoPeriod, repoReservation);

            _ = service.AddAsync("cb6c61f0-4134-4450-8203-aaee05081d45", 5);
            var list = repoReservation.All().ToList();

            Assert.Single(list);
            Assert.Equal(5, list[0].NoOfPeople);
        }
コード例 #3
0
        public async Task <int> AddAsync(string ecoTrail, string party, string swimmingPool)
        {
            var relaxProgram = new RelaxProgram
            {
                EcoTrail     = ecoTrail,
                Party        = party,
                SwimmingPool = swimmingPool,
            };

            await this.relaxProgramRepository.AddAsync(relaxProgram);

            await this.relaxProgramRepository.SaveChangesAsync();

            return(relaxProgram.Id);
        }