public HttpResponseMessage Put(DreamOrder sc)
        {
            try
            {
                var od = context.DreamOrderDb.Where(x => x.Order_Id == sc.Order_Id).SingleOrDefault();
                if (od != null)
                {
                    od.Status = sc.Status;
                    if (sc.Status == "Dispatched")
                    {
                        od.DboyName     = sc.DboyName;
                        od.DboyMobileNo = sc.DboyMobileNo;
                    }
                    od.UpdatedDate = indianTime;

                    context.DreamOrderDb.Attach(od);
                    context.Entry(od).State = EntityState.Modified;
                    context.SaveChanges();
                }

                return(Request.CreateResponse(HttpStatusCode.OK, od));
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message));
            }
        }
        public HttpResponseMessage Post(DreamOrder sc)
        {
            try
            {
                Customer cust = context.Customers.Where(x => x.Skcode == sc.Skcode && x.CustomerId == sc.CustomerId).SingleOrDefault();
                if (cust != null)
                {
                    Warehouse w = context.Warehouses.Where(wr => wr.Warehouseid == cust.Warehouseid).FirstOrDefault();
                    if (w != null)
                    {
                        sc.Warehouseid   = w.Warehouseid;
                        sc.WarehouseName = w.WarehouseName;
                        sc.CityId        = w.Cityid;
                    }
                    sc.ShopName        = cust.ShopName;
                    sc.Status          = "Pending";
                    sc.CustomerMobile  = cust.Mobile;
                    sc.ShippingAddress = cust.ShippingAddress;
                    sc.SalesPersonId   = cust.ExecutiveId;
                    sc.CompanyId       = cust.CompanyId;
                }
                sc.CreatedDate     = indianTime;
                sc.UpdatedDate     = indianTime;
                sc.Deliverydate    = indianTime.AddDays(2);
                sc.Deleted         = false;
                sc.ReDispatchCount = 0;

                foreach (var a in sc.DreamItemDetails)
                {
                    if (a.ItemId > 0)
                    {
                        RewardItems it = context.RewardItemsDb.Where(x => x.rItemId == a.ItemId).SingleOrDefault();
                        if (cust != null)
                        {
                            a.ShopName    = cust.ShopName;
                            a.Skcode      = cust.Skcode;
                            a.ItemName    = it.rItem;
                            a.Discription = it.Description;
                            a.Status      = "Pending";
                            a.CreatedDate = indianTime;
                            a.UpdatedDate = indianTime;
                            a.Deleted     = false;
                        }
                    }
                }
                context.DreamOrderDb.Add(sc);
                int id = context.SaveChanges();

                Wallet wlt = context.WalletDb.Where(c => c.CustomerId == cust.CustomerId).SingleOrDefault();
                if (wlt != null)
                {
                    if (sc.WalletPoint > 0)
                    {
                        wlt.TotalAmount    -= sc.WalletPoint;
                        wlt.TransactionDate = indianTime;

                        context.WalletDb.Attach(wlt);
                        context.Entry(wlt).State = EntityState.Modified;
                        context.SaveChanges();
                        var rpoint = context.RewardPointDb.Where(c => c.CustomerId == cust.CustomerId).SingleOrDefault();
                        if (rpoint != null)
                        {
                            rpoint.UsedPoint  += sc.WalletPoint;
                            rpoint.UpdatedDate = indianTime;
                            context.RewardPointDb.Attach(rpoint);
                            context.Entry(rpoint).State = EntityState.Modified;
                            context.SaveChanges();
                        }
                    }
                }
                return(Request.CreateResponse(HttpStatusCode.OK, sc));
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message));
            }
        }