//public ActionResult AddToCart(int id, int userID)
        //{
        //    // Get the matching cart and mealad instances
        //    var cartItem = storeDB.Carts.SingleOrDefault(
        //        c => c.CartID == ShoppingCartId
        //        && c.MealAdID == id);
        //    if (cartItem == null)
        //    {
        //        // Create a new cart item if no cart item exists
        //        cartItem = new Cart
        //        {
        //            MealAdID = id,
        //            CartID = ShoppingCartId,
        //            Count = 1,
        //            DateCreated = DateTime.Now
        //        };
        //        storeDB.Carts.Add(cartItem);
        //    }
        //    else
        //    {
        //        // If the item does exist in the cart,
        //        // then add one to the quantity
        //        cartItem.Count++;
        //    }
        //    // Save changes
        //    storeDB.SaveChanges();
        //    return
        //    //return RedirectResult("home/cart");
        //}
        public void AddToCart(MealAd mealad)
        {
            // Get the matching cart and mealad instances
            var cartItem = storeDB.Carts.SingleOrDefault(
                c => c.CartID == ShoppingCartId
                && c.MealAdID == mealad.MealAdID);

            if (cartItem == null)
            {
                // Create a new cart item if no cart item exists
                cartItem = new Cart
                {
                    MealAdID = mealad.MealAdID,
                    CartID = ShoppingCartId,
                    Count = 1,
                    DateCreated = DateTime.Now
                };
                storeDB.Carts.Add(cartItem);
            }
            else
            {
                // If the item does exist in the cart,
                // then add one to the quantity
                cartItem.Count++;
            }
            // Save changes
            storeDB.SaveChanges();
        }
        public void Add(MealAd MealAd)
        {
            var fileName = "";

            unitOfWork.mealadrepository.Add(MealAd);
            unitOfWork.Save();
            unitOfWork.Dispose();
        }
        //
        // GET: /MealAd/Create
        public ActionResult Create(int userid, int mealitemid = -1)
        {
            MealAd mealad = new MealAd();

            MealAdViewModel mealadvm = Mapper.Map<MealAd, MealAdViewModel>(mealad);

            mealadvm = PopulateDropDown(mealadvm, mealad, userid);

            return View(mealadvm);
        }
        public int AddAndReturnID(MealAd mealad)
        {
            // mealad.dc = DateTime.Now;
              //mealitem.Status = 1;
             // mealitem.Price =10.0M;

              unitOfWork.mealadrepository.Add(mealad);
              unitOfWork.Save();

              int mealadid = mealad.MealAdID;

              //   unitOfWork.Save();

             foreach (var payment in mealad.MealAds_PaymentOptions)
             {

                 payment.MealAdID = mealadid;
                 unitOfWork.MealPaymentRepository.Add(payment);
             }
             unitOfWork.Save();

              foreach (var deliverymethod in mealad.MealAds_DeliveryMethods)
             {

                 deliverymethod.MealAdID = mealadid;
                 unitOfWork.MealadDeliveryRepository.Add(deliverymethod);
             }

              foreach (var schedules in mealad.MealAd_Schedules)
              {

                  schedules.MealAdID = mealadid;
                  unitOfWork.MealScheduleRepository.Add(schedules);
              }
             unitOfWork.Save();
             try
             {
                 unitOfWork.mealadrepository.ExecWithStoreProcedureNoResults("PopulateActiveMealAd @MealAdID,@CRUD", new SqlParameter("MealAdID", SqlDbType.BigInt) { Value = mealad.MealAdID },
                     new SqlParameter("CRUD", SqlDbType.Char) { Value = "C" }
                     );

             }
             catch (Exception ex)
             {
                 string msg = ex.Message;

             }
             unitOfWork.Dispose();

            return mealadid;
        }
        private MealAdViewModel PopulateDropDown(MealAdViewModel mealadvm, MealAd mealad, int userid)
        {
            ThreeSixtyTwoEntities db = new ThreeSixtyTwoEntities();
            IMealAdService _service = new MealAdService();
            if (mealadvm == null)
                mealadvm = new MealAdViewModel();

            var MealItems = from b in db.MealItems
                            where b.UserId == userid
                            select b;

            IEnumerable<MealItem> MealItemsList = MealItems.ToList();
            mealadvm.MealItemsDD.MealItemsDDList =
                MealItemsList.Select(x => new SelectListItem
                {
                    Value = x.MealItemId.ToString(),
                    Text = x.MealItemName,
                    Selected = (mealad != null && mealad.MealItemID == x.MealItemId)
                });

            var AvailTypeMethod = from b in db.AvailabilityTypes
                                  select b;

            IEnumerable<AvailabilityType> AvailTypeList = AvailTypeMethod.ToList();
            mealadvm.AvailabilityTypeDD.AvailabilityTypeDDList =
                AvailTypeList.Select(x => new SelectListItem
                {
                    Value = x.AvaiilabilityTypeID.ToString(),
                    Text = x.Descriptions,
                    Selected = (mealad != null && mealad.AvailabilityTypeID == x.AvaiilabilityTypeID)

                });

            mealadvm.DeliveryMethods = _service.GetDeliveryMethodDDList().Select(x => new DeliveryMethodViewModel
            {
                DeliveryMethod = x.DeliveryMethod,
                DeliveryMethodID = x.DeliveryMethodID,
                Selected = (mealad != null && mealad.MealAds_DeliveryMethods.Where(y => y.DeliveryMethodID == x.DeliveryMethodID).Count() > 0)
            }).ToList();

            mealadvm.PaymentMethods = _service.PaymentMethodDDList().Select(x => new PaymentMethodViewModel
            {
                PaymentMethodID = x.PaymentOptionID,
                PaymentMethod = x.PaymentOption1,
                Selected = (mealad != null && mealad.MealAds_PaymentOptions.Where(y => y.PaymentOptionID == x.PaymentOptionID).Count() > 0)
            }).ToList();

            MealAdSchedule mealads = new MealAdSchedule();
            mealadvm.MealAdSchedules = new List<MealAdSchedule>();
            if (mealad != null && mealad.MealAd_Schedules != null && mealad.MealAd_Schedules.Count > 0)
            {
                foreach (var data in mealad.MealAd_Schedules)
                {
                    mealadvm.MealAdSchedules.Add(new MealAdSchedule() { LastOrderDateTime = data.LastOrderDateTime, PickUpEndDateTime = data.PickUpEndDateTime, PickUpStartDateTime = data.PickUpStartDateTime });
                }
            }
            else
            {
                mealadvm.MealAdSchedules.Add(mealads);
            }

            return mealadvm;
        }
 public JsonResult CreateMealAdDD(int userid)
 {
     MealAd mealad = new MealAd();
     MealAdViewModel mealadvm = Mapper.Map<MealAd, MealAdViewModel>(mealad);
     mealadvm = PopulateDropDown(mealadvm, mealad, userid);
     return Json(mealadvm, JsonRequestBehavior.AllowGet);
 }
 public void Delete(MealAd mt)
 {
     throw new NotImplementedException();
 }
        //
        // GET: /MealAd/Details/5
        public ActionResult Details(int id = 0)
        {
            MealAd mealad = db.MealAds.Find(id);
            if (mealad == null)
            {
                mealad = new MealAd();
            }

            MealAdViewModel mealadvm = Mapper.Map<MealAd, MealAdViewModel>(mealad);
            mealadvm.MealItemName = mealad.MealItem.MealItemName;
            mealadvm = PopulateDropDown(mealadvm, mealad, WebSecurity.CurrentUserId);
            return View(mealadvm);
        }