public async Task <OrderDetailsCart> GetOrderDetailsCart(Claim claim, IMenuItemRepository menuItem, string code, ICouponRepository couponRepository) { OrderDetailsCart order = new OrderDetailsCart { OrderHeader = new OrderHeader(), ShoppingCarts = await GetShoppingCartFoUser(claim.Value) }; order.OrderHeader.OrderTotal = 0; foreach (var VARIABLE in order.ShoppingCarts) { VARIABLE.MenuItem = await menuItem.GetItemAsync(VARIABLE.MenuItemId); order.OrderHeader.OrderTotal = order.OrderHeader.OrderTotal + (VARIABLE.MenuItem.Price * VARIABLE.Count); VARIABLE.MenuItem.Description = SD.ConvertToRawHtml(VARIABLE.MenuItem.Description); if (VARIABLE.MenuItem.Description.Length > 100) { VARIABLE.MenuItem.Description = VARIABLE.MenuItem.Description.Substring(0, 99) + "..."; } } order.OrderHeader.OrderTotalOriginal = order.OrderHeader.OrderTotal; if (code != null) { order.OrderHeader.CouponCode = code; var couponFromDb = await couponRepository.AllItems.Where(z => z.Name.ToLower() == order.OrderHeader.CouponCode.ToLower()).FirstOrDefaultAsync(); order.OrderHeader.OrderTotal = SD.DiscountedPrice(couponFromDb, order.OrderHeader.OrderTotalOriginal); } return(order); }