コード例 #1
0
        public async Task <IActionResult> Checkout(CheckoutDTO dto)
        {
            var basketId = GetBasketId();

            if (basketId == null)
            {
                return(BadRequest());
            }

            using var uow = _unitOfWorkFactory.Create();

            await _basketService.CheckoutAsync(
                basketId.Value,
                dto.FirstName,
                dto.LastName,
                dto.EmailAddress,
                dto.PhoneNumber,
                dto.City,
                dto.AddressLine1,
                dto.AddressLine2,
                dto.ZipCode);

            uow.Commit();

            return(NoContent());
        }
コード例 #2
0
        public async Task <IActionResult> Book(CheckoutDTO checkoutdto)

        {
            try
            {
                if (ModelState.IsValid)
                {
                    var checkout = new Booking
                    {
                        A_FK_USERID        = checkoutdto.UserId,
                        A_FK_CARID         = checkoutdto.CarId,
                        A_LEASE_START_DATE = checkoutdto.StartDate,
                        A_LEASE_END_DATE   = checkoutdto.EndDate,
                        A_TENURE           = checkoutdto.Tenure,
                        A_PRICE            = checkoutdto.Price
                    };

                    var checkedoutUser = await _repo.Book(checkout);

                    return(StatusCode(201));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
            return(BadRequest());
        }
コード例 #3
0
        public ActionResult Checkout()
        {
            CheckoutDTO data = JsonSerializer.Deserialize <CheckoutDTO>(Request.Form["data"][0]);

            if (data.Amount > 0)
            {
                MimeMessage message = new MimeMessage();
                message.To.Add(new MailboxAddress("Techvesta Limited", EmailSetting.emailID));
                //message.Cc.Add(new MailboxAddress(data.FullName, data.Email));
                message.From.Add(new MailboxAddress(data.FullName, data.Email));
                message.Subject = $"Payment initiated by {data.Email}";
                message.Body    = new TextPart("html")
                {
                    Text = $"<span>Plan</span><p>{data.Service}</p><br/><span>Email</span><p>{data.Email}</p><br/><span>Amount</span><p>{data.Amount}</p><br/><span>Contact Number</span><p>{data.Number}</p><br/><span>Address</span><p>{data.Address}, {data.City}, {data.State}, {data.Country}</p>"
                };

                using (var client = new SmtpClient())
                {
                    client.Connect(EmailSetting.smtp, EmailSetting.port, true);
                    client.Authenticate(EmailSetting.emailID, EmailSetting.password);
                    client.Send(message);
                    client.Disconnect(true);
                }

                var domain  = Request.Scheme + "://" + Request.Host.Value;
                var options = new SessionCreateOptions
                {
                    PaymentMethodTypes = new List <string>
                    {
                        "card",
                    },
                    LineItems = new List <SessionLineItemOptions>
                    {
                        new SessionLineItemOptions
                        {
                            PriceData = new SessionLineItemPriceDataOptions
                            {
                                UnitAmount  = (long?)data.Amount * 100,
                                Currency    = data.Currency,
                                ProductData = new SessionLineItemPriceDataProductDataOptions
                                {
                                    Name = data.Service,
                                },
                            },
                            Quantity = 1,
                        },
                    },
                    Mode       = "payment",
                    SuccessUrl = domain + "/Subscription/PaymentCompleted?isSuccessful=true",
                    CancelUrl  = domain + "/Subscription/PaymentCompleted?isSuccessful=false",
                };
                var     service = new SessionService();
                Session session = service.Create(options);
                return(Json(new { id = session.Id }));
            }
            return(null);
        }
コード例 #4
0
        /// <summary>
        /// Creates a new equipment
        /// </summary>
        public void CheckOut(NewCheckoutDTO newCheckoutDTO)
        {
            // create the equipmentDTO for persistence and populate its properties
            CheckoutDTO checkoutDTO = new CheckoutDTO()
            {
                EquipmentID = newCheckoutDTO.EquipmentID,
                StudentID   = newCheckoutDTO.StudentID
            };

            _equipmentDAO.CheckOut(checkoutDTO);
        }
コード例 #5
0
        /// <summary>
        /// Check Out Equipment
        /// </summary>
        public void CheckOut(CheckoutDTO checkoutDTO)
        {
            using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["Housing"].ConnectionString))
            {
                connection.Open();
                string sql = @"Set StudentID = @StudentID, Status = 'Out'
                               Where LoanID = @EquipmentID";


                connection.Execute(sql, checkoutDTO);
            }
        }
コード例 #6
0
        public async Task <IActionResult> Checkout(CheckoutDTO dto)
        {
            var basketId = GetBasketId();

            if (basketId == null)
            {
                return(BadRequest());
            }

            var checkoutCommand = _mapper.Map <CheckoutCommand>(dto);

            checkoutCommand.BasketId = basketId.Value;

            await _mediator.Send(checkoutCommand); //todo it should somehow return orderId

            return(NoContent());
        }
コード例 #7
0
        public void MakeOrder(CheckoutDTO checkoutDTO)
        {
            if (!checkoutDTO.CartLines.Any())
            {
                throw new ValidationException("корзина пуста!", "CartLines");
            }
            if (checkoutDTO.FirstName == null)
            {
                throw new ValidationException("некорректное имя!", "FirstName");
            }
            if (checkoutDTO.LastName == null)
            {
                throw new ValidationException("некоректная фамилия!", "LastName");
            }
            if (checkoutDTO.Address == null)
            {
                throw new ValidationException("некоректный адрес!", "LastName");
            }
            if (checkoutDTO.Email == null)
            {
                throw new ValidationException("некоректный email!", "LastName");
            }

            IMapper mapper = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap <CheckoutDTO, Checkout>();
                cfg.CreateMap <CartLineDTO, CartLine>()
                .ForMember(cl => cl.Product, (options) => options.Ignore())
                .ForMember(cl => cl.ProductId, opt => opt.MapFrom(clDTO => clDTO.Product.Id));
            }).CreateMapper();
            Checkout checkout = mapper.Map <Checkout>(checkoutDTO);

            checkout.Status = _dbContext.Statuses.FirstOrDefault(s => s.Code == 1);

            if (checkout.Status == null)
            {
                throw new ValidationException("ошибка на сервере!", "");
            }

            _dbContext.Checkouts.Add(checkout);
            _dbContext.SaveChanges();
        }
コード例 #8
0
        public ActionResult Checkout(CheckoutViewModel checkoutViewModel)
        {
            IMapper checkoutMapper = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap <CheckoutViewModel, CheckoutDTO>();
                cfg.CreateMap <CartLine, CartLineDTO>();
                cfg.CreateMap <ProductPageViewModel, ProductPageDTO>();
            }).CreateMapper();
            CheckoutDTO checkoutDTO = checkoutMapper.Map <CheckoutDTO>(checkoutViewModel);

            checkoutDTO.CartLines = _cart.CartLines;

            try
            {
                _checkoutService.MakeOrder(checkoutDTO);
            }
            catch (ValidationException ex)
            {
                ModelState.AddModelError(ex.Property, ex.Message);
            }

            if (ModelState.IsValid)
            {
                _cart.Clear();
                return(PartialView("Partials/Checkout/CheckoutResultPartial", "Ваш заказ успешно оформлен!"));
            }

            IMapper mapper = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap <CartLineDTO, CartLine>();
                cfg.CreateMap <ProductPageDTO, ProductPageViewModel>();
                cfg.CreateMap <ImageDTO, ImageViewModel>();
            }).CreateMapper();
            IList <CartLine> cartLines = mapper.Map <IList <CartLine> >(_cart.CartLines);

            checkoutViewModel.CartLines  = cartLines;
            checkoutViewModel.TotalValue = _cart.TotalValue;

            return(View(checkoutViewModel));
        }