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); }
private bool ValidateBasket(BasketCustomer basket) { if (basket.IsValid()) { return(true); } basket.ValidationResult.Errors.ToList().ForEach(e => AddErrors(e.ErrorMessage)); return(false); }
private async Task UpdateExistingBasket(BasketCustomer basket, BasketItem item) { basket.AddItem(item); if (!ValidateBasket(basket)) { return; } await _repository.Save(basket); }
private async Task SaveNewBasket(BasketItem item) { var basket = new BasketCustomer(_user.GetUserId()); basket.AddItem(item); if (!ValidateBasket(basket)) { return; } await _repository.Save(basket); }
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); }
public async Task Save(BasketCustomer entity) { await _distributedCache.SetAsync($"Basket_{entity.CustomerId}", RedisHelper.SerializeToByte(entity)); }