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); }
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); }
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); }