示例#1
0
        public async Task AddAsync(PaymentTypeInputModel inputModel)
        {
            var paymentType = Enum.Parse(typeof(PaymentType), inputModel.PaymentType);

            var payment = new Payment
            {
                Id            = Guid.NewGuid().ToString(),
                PaymentType   = (PaymentType)paymentType,
                ReservationId = inputModel.ReservationId,
            };

            await this.paymentsRepository.AddAsync(payment);

            await this.paymentsRepository.SaveChangesAsync();
        }
示例#2
0
        public async Task AddPaymentShouldAddCorrectCount()
        {
            var repository = new EfDeletableEntityRepository <Payment>(new ApplicationDbContext(this.options.Options));
            var service    = new PaymentsService(repository);

            var payment = new PaymentTypeInputModel
            {
                PaymentType   = "Cash",
                ReservationId = Guid.NewGuid().ToString(),
            };

            await service.AddAsync(payment);

            Assert.Equal(1, repository.All().Count());
        }
示例#3
0
        public async Task <IActionResult> Checkout(PaymentTypeInputModel inputModel)
        {
            var seatIds = this.TempData["seatIds"] as IEnumerable <string>;

            await this.reservationsService.MakeSeatsTakenAsync(seatIds, inputModel.ReservationId);

            await this.paymentsService.AddAsync(inputModel);

            if (inputModel.PaymentType == "Cash")
            {
                return(this.RedirectToAction("ShowTicket", new { reservationId = inputModel.ReservationId }));
            }

            var viewModel = new SimpleReservationViewModel
            {
                ReservationId = inputModel.ReservationId,
            };

            return(this.View(viewModel));
        }