public override async Task <InsertItemToNewCartResponse> InsertItemToNewCart(InsertItemToNewCartRequest request, ServerCallContext context) { try { var cartCommander = _commandFactory.RepositoryAsync <Domain.Cart>(); var cart = await Domain.Cart.Load() .InsertItemToCart(request.ProductId.ConvertTo <Guid>(), request.Quantity) .CalculateCartAsync( TaxType.NoTax, _catalogGateway, _promoGateway, _shippingGateway); await cartCommander.AddAsync(cart); return(new InsertItemToNewCartResponse { Result = cart.ToDto() }); } catch (Exception ex) { _logger.LogError(ex.Message); throw new RpcException(new Status(StatusCode.Internal, ex.Message)); } }
public async Task <GetCartByIdResponse> CreateCartAsync(InsertItemToNewCartRequest request) { string endPoint = $"{_cartServiceUri}/api/v1/carts"; RestClient.SetOpenTracingInfo(request.Headers); var response = await RestClient.PostAsync <GetCartByIdResponse>(endPoint, request); return(response); }
public async Task <ActionResult <GetCartByIdResponse> > CreateCart([FromBody] InsertItemToNewCartRequest request) { if (!ModelState.IsValid) { return(BadRequest(new { Message = "ModelState is not valid. Check the ModelState property for specific errors.", StatusCode = 400, ModelState })); } request.Headers = HttpContext.Request.GetOpenTracingInfo(); var response = await _cartService.CreateCartAsync(request); return(Ok(response)); }
public override async Task <InsertItemToNewCartResponse> InsertItemToNewCart(InsertItemToNewCartRequest request, ServerCallContext context) { try { var cartCommander = _commandFactory.RepositoryAsync <Domain.Cart>(); var cart = await Domain.Cart.Load() .InsertItemToCart(request.ProductId.ConvertTo <Guid>(), request.Quantity) .CalculateCartAsync( TaxType.NoTax, _catalogGateway, _promoGateway, _shippingGateway); await cartCommander.AddAsync(cart); await _commandFactory.SaveChangesAsync(default);
public async Task <GetCartByIdResponse> InsertItemToCartAsync(InsertItemToNewCartRequest request) { var cart = new Domain.Cart(); cart.InsertItemToCart(new CartItem { Product = new Product(request.ProductId), PromoSavings = 0.0D, Quantity = request.Quantity }); cart = await InitCart(cart, populatePrice : true); cart = PriceCalculatorContext.Execute(cart); await _mutateRepository.AddAsync(cart); return(GetCartByIdResponse(cart)); }
//[Auth(Policy = "access_cart_api")] public async Task <IActionResult> Create(InsertItemToNewCartRequest request) { return(Ok(await _cartServiceClient.InsertItemToNewCartAsync(request))); }
public async Task <GetCartByIdResponse> Create([FromBody] InsertItemToNewCartRequest request) { var cart = await _cartService.InsertItemToCartAsync(request); return(await _cartService.GetCartByIdAsync(cart.Id)); }
public async Task <IActionResult> Create([FromServices] IMediator eventor, InsertItemToNewCartRequest request, CancellationToken cancellationToken) => await eventor.SendStream <InsertItemToNewCartRequest, InsertItemToNewCartResponse>(request, x => x.Result);