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