Exemple #1
0
        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)));
            }
        }
Exemple #2
0
        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)));
            }
        }