public override async Task <CustomerCartResponse> UpdateCart(CustomerCartRequest request, ServerCallContext context) { _logger.LogInformation("Begin grpc call CartService.UpdateCartAsync for buyer id {Buyerid}", request.Buyerid); var customerCart = MapToCustomerCart(request); var response = await _repository.UpdateCartAsync(customerCart); if (response != null) { return(MapToCustomerCartResponse(response)); } context.Status = new Status(StatusCode.NotFound, $"Cart with buyer id {request.Buyerid} do not exist"); return(null); }
private CustomerCart MapToCustomerCart(CustomerCartRequest customerCartRequest) { var response = new CustomerCart { BuyerId = customerCartRequest.Buyerid }; customerCartRequest.Items.ToList().ForEach(item => response.Items.Add(new CartItem { Id = item.Id, OldUnitPrice = (decimal)item.Oldunitprice, PictureUrl = item.Pictureurl, ProductId = item.Productid, ProductName = item.Productname, Quantity = item.Quantity, UnitPrice = (decimal)item.Unitprice })); return(response); }