Esempio n. 1
0
        private BasketCustomerResponse MapBasketCustomerResponse(BasketCustomer basket)
        {
            var basketProto = new BasketCustomerResponse
            {
                Id         = basket.Id.ToString(),
                Customerid = basket.CustomerId.ToString(),
                Discount   = (double)basket.Discount,
                Hasvoucher = basket.HasVoucher
            };

            if (basket.Voucher != null)
            {
                basketProto.Voucher = new VoucherResponse
                {
                    Code         = basket.Voucher.Code,
                    Discount     = (double?)basket.Voucher.Discount ?? 0,
                    Discounttype = (int)basket.Voucher.DiscountType
                };
            }

            foreach (var item in basket.Items)
            {
                basketProto.Items.Add(new BasketItemResponse
                {
                    Id        = item.Id.ToString(),
                    Name      = item.Name,
                    Image     = item.Image,
                    Productdd = item.ProductId.ToString(),
                    Qty       = item.Qty,
                    Price     = (double)item.Price
                });
            }

            return(basketProto);
        }
Esempio n. 2
0
        private bool ValidateBasket(BasketCustomer basket)
        {
            if (basket.IsValid())
            {
                return(true);
            }

            basket.ValidationResult.Errors.ToList().ForEach(e => AddErrors(e.ErrorMessage));
            return(false);
        }
Esempio n. 3
0
        private async Task UpdateExistingBasket(BasketCustomer basket, BasketItem item)
        {
            basket.AddItem(item);

            if (!ValidateBasket(basket))
            {
                return;
            }
            await _repository.Save(basket);
        }
Esempio n. 4
0
        private async Task SaveNewBasket(BasketItem item)
        {
            var basket = new BasketCustomer(_user.GetUserId());

            basket.AddItem(item);

            if (!ValidateBasket(basket))
            {
                return;
            }

            await _repository.Save(basket);
        }
Esempio n. 5
0
        private BasketItem GetBasketItem(Guid productId, BasketCustomer basket, BasketItem item = null)
        {
            if (item != null && productId != item.ProductId)
            {
                AddErrors("Product id is different");
                return(null);
            }

            if (basket == null)
            {
                AddErrors("Basket Not found");
                return(null);
            }

            var basketItem = basket.Items.FirstOrDefault(f => f.BasketId == basket.Id && f.ProductId == productId);

            if (basketItem == null || !basket.ExistingItem(basketItem))
            {
                AddErrors("Item was not added to the basket");
                return(null);
            }

            return(basketItem);
        }
Esempio n. 6
0
 public async Task Save(BasketCustomer entity)
 {
     await _distributedCache.SetAsync($"Basket_{entity.CustomerId}", RedisHelper.SerializeToByte(entity));
 }