private CustomerBasketRequest MapToCustomerBasketRequest(BasketData basketData)
    {
        if (basketData == null)
        {
            return(null);
        }

        var map = new CustomerBasketRequest
        {
            Buyerid = basketData.BuyerId
        };

        basketData.Items.ToList().ForEach(item =>
        {
            if (item.Id != null)
            {
                map.Items.Add(new BasketItemResponse
                {
                    Id           = item.Id,
                    Oldunitprice = (double)item.OldUnitPrice,
                    Pictureurl   = item.PictureUrl,
                    Productid    = item.ProductId,
                    Productname  = item.ProductName,
                    Quantity     = item.Quantity,
                    Unitprice    = (double)item.UnitPrice
                });
            }
        });

        return(map);
    }
        public override async Task <CustomerBasketResponse> UpdateBasket(CustomerBasketRequest request, ServerCallContext context)
        {
            _logger.LogInformation("Begin grpc call BasketService.UpdateBasketAsync for buyer id {Buyerid}", request.Buyerid);

            var customerBasket = MapToCustomerBasket(request);

            var response = await _repository.UpdateBasketAsync(customerBasket);

            if (response != null)
            {
                return(MapToCustomerBasketResponse(response));
            }

            context.Status = new Status(StatusCode.NotFound, $"Basket with buyer id {request.Buyerid} do not exist");

            return(null);
        }
        private CustomerBasket MapToCustomerBasket(CustomerBasketRequest customerBasketRequest)
        {
            var response = new CustomerBasket
            {
                BuyerId = customerBasketRequest.Buyerid
            };

            customerBasketRequest.Items.ToList().ForEach(item => response.Items.Add(new BasketItem
            {
                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);
        }
        private CustomerBasketRequest MapToCustomerBasketRequest(BasketData basketData)
        {
            if (basketData == null)
            {
                return(null);
            }

            var map = new CustomerBasketRequest
            {
                Buyerid = basketData.BuyerId,
                Coupon  = basketData.Coupon.CouponCode != null ? new CouponResponse
                {
                    Couponcode     = basketData.Coupon.CouponCode,
                    Expirationdate = basketData.Coupon.ExpirationDate,
                    Discount       = (double)basketData.Coupon.Discount
                } : new CouponResponse {
                    Discount = 0
                }
            };

            basketData.Items.ToList().ForEach(item =>
            {
                if (item.Id != null)
                {
                    map.Items.Add(new BasketItemResponse
                    {
                        Id           = item.Id,
                        Oldunitprice = (double)item.OldUnitPrice,
                        Pictureurl   = item.PictureUrl,
                        Productid    = item.ProductId,
                        Productname  = item.ProductName,
                        Quantity     = item.Quantity,
                        Unitprice    = (double)item.UnitPrice,
                        Isdiscounted = item.isDiscounted
                    });
                }
            });

            return(map);
        }