public async Task <IActionResult> Checkout([FromBody] BasketCheckout basketCheckout) { var basket = await _repository.GetBasketAsync(basketCheckout.UserName); if (basket == null) { return(BadRequest()); } var basketToRemove = await _repository.DeleteBasketAsync(basket.UserName); if (!basketToRemove) { return(BadRequest()); } var eventMessage = _mapper.Map <BasketCheckoutEvent>(basketCheckout); eventMessage.RequestId = Guid.NewGuid(); eventMessage.TotalPrice = basket.TotalPrice; try { _eventBus.PublishBasketCheckout(EventBusConstants.BasketCheckoutQueue, eventMessage); } catch (Exception) { throw; } return(Accepted()); }
public async Task <ActionResult> CheckoutBasket([FromBody] BasketCheckout basketCheckout) { var basket = await _basketRepository.GetBasket(basketCheckout.UserName); if (basket == null) { return(BadRequest()); } var basketRemoved = await _basketRepository.DeleteBasket(basketCheckout.UserName); if (!basketRemoved) { return(BadRequest()); } var eventMessage = _mapper.Map <BasketCheckoutEvent>(basketCheckout); eventMessage.RequestId = Guid.NewGuid(); eventMessage.TotalPrice = basket.TotalPrice; try { _eventBusRabbitMqProducer.PublishBasketCheckout(EventBusConstants.BasketCheckoutQueue, eventMessage); } catch (Exception e) { Console.WriteLine($"error sending eventbus message message: {e.Message}"); throw; } return(Accepted()); }
public async Task <IActionResult> CheckOut([FromBody] BasketCheckOut basketCheckOut) { //get total price of basket //remove the basket // send checkout event to rabbit var basket = await _basketBusiness.GetBasket(basketCheckOut.UserName); if (basket == null) { return(BadRequest()); } var basketRemoved = await _basketBusiness.DeleteBasket(basketCheckOut.UserName); if (!basketRemoved) { return(BadRequest()); } var eventMessage = _mapper.Map <BasketCheckOutEvent>(basketCheckOut); eventMessage.RequestId = Guid.NewGuid(); eventMessage.TotalPrice = basket.TotalPrice; try { _eventBus.PublishBasketCheckout(EventBusConstants.BASKETCHECKOUTQUEUE, eventMessage); } catch (Exception) { throw; } return(Accepted()); }
[ProducesResponseType((int)HttpStatusCode.BadRequest)] //400 public async Task <IActionResult> Checkout([FromBody] BasketCheckout basketCheckout) { //get total price of basket //remove the basket //send checkout event to rabbitMQ var basket = await _basketRepository.GetBasket(basketCheckout.UserName); if (basket == null) { return(BadRequest()); } var basketRemoved = await _basketRepository.DeleteBasket(basket.UserName); if (!basketRemoved) { return(BadRequest()); } var eventMessage = _mapper.Map <BasketCheckoutEvent>(basketCheckout); eventMessage.TotalPrice = basket.TotalPrice(); //Publish To RabbitMQ _eventBus.PublishBasketCheckout(queueName: EventBusConstants.BasketCheckoutQueue, publishModel: eventMessage); return(Accepted()); }
public async Task <IActionResult> Checkout(BasketCheckout checkout) { BasketCart basket = await _basketRepository.GetBasket(checkout.userName); if (basket == null) { return(BadRequest()); } var basketRemoved = await _basketRepository.DeleteBasket(basket.UserName); if (!basketRemoved) { return(BadRequest()); } //var eventMessage = _mapper.Map <BasketCheckoutEvent>(basket); var eventMessage = new BasketCheckoutEvent { AddressLine = checkout.AddressLine, CardName = checkout.CardName, CardNumber = checkout.CardNumber, Country = checkout.Country, CVV = checkout.CVV, EmailAddress = checkout.EmailAddress, Expiration = checkout.Expiration, FirstName = checkout.FirstName, LastName = checkout.LastName, PaymentMethod = checkout.PaymentMethod, State = checkout.State, TotalPrice = checkout.TotalPrice, userName = checkout.userName, ZipCode = checkout.ZipCode }; eventMessage.RequestId = Guid.NewGuid(); eventMessage.TotalPrice = basket.TotalPrice; try { _eventBus.PublishBasketCheckout(EventBusConstants.BasketCheckoutQueue, eventMessage); } catch (Exception ex) { return(BadRequest()); } return(Accepted(basket)); }
public async Task <ActionResult <BasketCart> > Checkout([FromBody] BasketCheckout basketCheckout) { try { // get basket BasketCart basketCart = await _basketRepository.GetBasket(basketCheckout.UserName); if (basketCart == null) { return(BadRequest()); } // remove basket // bool result = await _basketRepository.DeleteBasket(basketCheckout.UserName); // // if (result == false) // { // return BadRequest(); // } BasketCheckoutEvent basketCheckoutEvent = basketCheckout.Adapt <BasketCheckoutEvent>(); basketCheckoutEvent.RequestId = Guid.NewGuid(); basketCheckoutEvent.TotalPrice = basketCart.TotalPrice.ToString(CultureInfo.InvariantCulture); try { _eventBus.PublishBasketCheckout(EventBusConstant.BasketCheckoutQueue, basketCheckoutEvent); } catch (Exception) { throw; } return(Accepted()); } catch (Exception) { return(BadRequest()); } }
public async Task <ActionResult <BasketCheckout> > Checkout(BasketCheckout b) { var en = await _repository.GetBasketAsync(b.UserName); if (en is null) { return(NotFound("There is no such basket for this user.")); } var isDeleted = await _repository.DeleteAsync(b.UserName); if (!isDeleted) { return(BadRequest("Deletion is unsuccessful.")); } var p = _mapper.Map <BasketCheckoutEvent>(b); p.RequestId = Guid.NewGuid(); p.TotalPrice = b.TotalPrice; _eventBus.PublishBasketCheckout(EventBusEnum.BASKET_CHECKOUT_QUEUE, p); return(Accepted()); }
public async Task <IActionResult> CheckOut([FromBody] BasketCheckout basketCheckout) { // get total price of basket // remove the basket // send checkout event to RabbitMQ var basket = await _repository.GetBasket(basketCheckout?.UserName); if (basket is null) { return(BadRequest()); } var basketRemoved = await _repository.DeleteBasket(basket.UserName); if (!basketRemoved) { return(BadRequest()); } var eventMessage = _mapper.Map <BasketCheckoutEvent>(basketCheckout); eventMessage.RequestId = Guid.NewGuid(); eventMessage.TotalPrice = basket.TotalPrice; try { _eventBus.PublishBasketCheckout(EventBusConstants.BasketCheckoutQueue, eventMessage); } catch (Exception e) { Console.WriteLine(e); throw; } return(Accepted()); }