public virtual JsonResult UpdateBasketInfo(HeaderCustomInfo model) { var basket = _basketApi.GetBasketData(model.BasketId.ToString()); if (model.LineInfo != null) { if (basket != null) { var newLines = (from p in model.LineInfo where basket.Result.LineItems.Any(l => l.ProductId == p.ProductId.ToUpper()) == false select new BasketAddModel() { BasketId = model.BasketId.ToString(), ProductId = p.ProductId, DisplayOrder = 0, Qty = p.Qty, StockCode = p.StockCode, CustomInfo2 = p.CustomInfo2 }).ToList(); if (newLines.Where(x => !string.IsNullOrEmpty(x.StockCode)).Any()) { var basketData = _basketApi.BulkAddProduct(newLines); model.BasketId = Guid.Parse(basketData.Result.Id); } var existLines = (from p in basket.Result.LineItems where model.LineInfo.Any(l => l.ProductId.ToUpper() == p.ProductId.ToUpper()) == true select p).ToList(); model.LineInfo.ForEach(l => l.Qty = Math.Max(l.Qty, existLines.FirstOrDefault(li => li.ProductId.ToUpper() == l.ProductId.ToUpper() && li.ParentProductId == Guid.Empty.ToString())?.Qty ?? 0)); //model.LineInfo.ForEach(l => l.Qty = Math.Max(l.Qty, existLines.FirstOrDefault(li => li.ProductId.ToUpper() == l.ProductId.ToUpper()) != null ? existLines.FirstOrDefault(li => li.ProductId.ToUpper() == l.ProductId.ToUpper()).Qty : 0)); } var resp = _basketApi.UpdateBasketInfo(model.BasketId.ToString(), model); return(JsonSuccess(resp, JsonRequestBehavior.DenyGet)); } return(JsonSuccess(basket, JsonRequestBehavior.DenyGet)); }