public async Task <IHttpActionResult> GetCartMobileDemo(MobileOrderViewModel model) { try { if (System.Web.HttpContext.Current.Request.Params["Store"] != null) { model.Store = JsonConvert.DeserializeObject <List <MobileCart> >(System.Web.HttpContext.Current.Request.Params["Store"]); } return(Ok(new CustomResponse <MobileOrderViewModel> { Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = model })); } catch (Exception ex) { return(StatusCode(DunkeyDelivery.Utility.LogError(ex))); } }
public async Task <IHttpActionResult> GetCartMobile(MobileOrderViewModel model) { try { using (DunkeyContext ctx = new DunkeyContext()) { if (System.Web.HttpContext.Current.Request.Params["Store"] != null) { model.Store = JsonConvert.DeserializeObject <List <MobileCart> >(System.Web.HttpContext.Current.Request.Params["Store"]); } var UserAddress = ctx.UserAddresses.FirstOrDefault(x => x.User_ID == model.User_Id && x.IsPrimary == true); if (UserAddress == null) { UserAddress = ctx.UserAddresses.FirstOrDefault(x => x.User_ID == model.User_Id); } model.Address = UserAddress; var storeIds = model.Store.Select(x => x.storeId).Distinct(); var storeBusinessTypes = ctx.Stores.Where(x => storeIds.Contains(x.Id)); //ctx.BusinessTypeTax.Where(x=>x.) //ctx.BusinessTypeTax.Where(x=>x.BusinessType == businessType) var StoreTaxes = model.Store.GroupBy(x => x.StoreTax); var DistinctStoreIds = model.Store.GroupBy(x => x.businessType); foreach (var store in model.Store) { var Store = ctx.Stores.FirstOrDefault(x => x.Id == store.storeId); store.minDeliveryCharges = Store.MinDeliveryCharges; store.minDeliveryTime = Store.MinDeliveryTime; store.minOrderPrice = Store.MinOrderPrice; foreach (var product in store.products) { store.StoreSubTotal = store.StoreSubTotal + (ctx.Products.FirstOrDefault(x => x.Id == product.Id).Price *product.quantity); } model.OrderSummary.SubTotal = model.OrderSummary.SubTotal + store.StoreSubTotal.Value; if (store.minDeliveryCharges != null) { store.products.Add(new productslist { Name = "Delivery Fee", Price = Convert.ToDouble(store.minDeliveryCharges.Value), Store_id = store.storeId }); model.OrderSummary.SubTotal = model.OrderSummary.SubTotal + Convert.ToDouble(store.minDeliveryCharges.Value); } } } return(Ok(new CustomResponse <MobileOrderViewModel> { Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = model })); } catch (Exception ex) { return(StatusCode(DunkeyDelivery.Utility.LogError(ex))); } }