public ActionResult Create(MealAdViewModel MealAdvm)
        {
            if (ModelState.IsValid)
            {

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

                foreach (var payment in MealAdvm.PaymentMethods)
                {
                    if (payment.Selected)
                    {

                        MealAds_PaymentOptions paymentoptions = new MealAds_PaymentOptions();
                        paymentoptions.PaymentOptionID = payment.PaymentMethodID;
                        mealad.MealAds_PaymentOptions.Add(paymentoptions);
                    }

                }

                foreach (var delivery in MealAdvm.DeliveryMethods)
                {
                    if (delivery.Selected)
                    {

                        MealAds_DeliveryMethods deliverymthd = new MealAds_DeliveryMethods();
                        deliverymthd.DeliveryMethodID = delivery.DeliveryMethodID;
                        mealad.MealAds_DeliveryMethods.Add(deliverymthd);
                    }

                }
                int orderingoptionnum = 0;
                var availabilityType = db.AvailabilityTypes.Where(x => x.AvaiilabilityTypeID == mealad.AvailabilityTypeID).FirstOrDefault();
                if (availabilityType != null)
                {

                    string orderingoption = availabilityType.AvailabilityType1;
                    orderingoptionnum = Convert.ToInt32(orderingoption);
                }
                foreach (var schedules in MealAdvm.MealAdSchedules)
                {

                    MealAd_Schedules meadadschedule = new MealAd_Schedules();
                    meadadschedule.PickUpStartDateTime = schedules.PickUpStartDateTime;
                    meadadschedule.PickUpEndDateTime = schedules.PickUpEndDateTime;
                    meadadschedule.LastOrderDateTime = schedules.PickUpEndDateTime.AddHours(-orderingoptionnum);
                    mealad.MealAd_Schedules.Add(meadadschedule);
                    break;
                }

                mealad.MealAdID = _service.AddAndReturnID(mealad);

                eh.SendEmail("Insert");

                return RedirectToAction("Details", "MealAd", new { id = mealad.MealAdID });

            }

            return View(MealAdvm);
        }
        public JsonResult CreateMealAd(MealAdViewModel MealAdvm)
        {
            IMealAdService _service = new MealAdService();
            ThreeSixtyTwoEntities db = new ThreeSixtyTwoEntities();
            MealAd mealad = Mapper.Map<MealAdViewModel, MealAd>(MealAdvm);

            foreach (var payment in MealAdvm.PaymentMethods)
            {
                if (payment.Selected)
                {

                    MealAds_PaymentOptions paymentoptions = new MealAds_PaymentOptions();
                    paymentoptions.PaymentOptionID = payment.PaymentMethodID;
                    mealad.MealAds_PaymentOptions.Add(paymentoptions);
                }

            }

            foreach (var delivery in MealAdvm.DeliveryMethods)
            {
                if (delivery.Selected)
                {

                    MealAds_DeliveryMethods deliverymthd = new MealAds_DeliveryMethods();
                    deliverymthd.DeliveryMethodID = delivery.DeliveryMethodID;
                    mealad.MealAds_DeliveryMethods.Add(deliverymthd);
                }

            }
            int orderingoptionnum = 0;
            var availabilityType = db.AvailabilityTypes.Where(x => x.AvaiilabilityTypeID == mealad.AvailabilityTypeID).FirstOrDefault();
            if (availabilityType != null)
            {

                string orderingoption = availabilityType.AvailabilityType1;
                orderingoptionnum = Convert.ToInt32(orderingoption);
            }
            foreach (var schedules in MealAdvm.MealAdSchedules)
            {

                MealAd_Schedules meadadschedule = new MealAd_Schedules();
                meadadschedule.PickUpStartDateTime = schedules.PickUpStartDateTime;
                meadadschedule.PickUpEndDateTime = schedules.PickUpEndDateTime;
                meadadschedule.LastOrderDateTime = schedules.PickUpEndDateTime.AddHours(-orderingoptionnum);
                mealad.MealAd_Schedules.Add(meadadschedule);

            }

            mealad.MealAdID = _service.AddAndReturnID(mealad);
            return Json(true, JsonRequestBehavior.AllowGet);
        }
        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 CreateMealAd1()
 {
     MealAdViewModel MealAdvm = new MealAdViewModel();
     MealAdvm.AvailabilityTypeDD = new AvailabilityTypeViewModel();
     return Json(MealAdvm, JsonRequestBehavior.AllowGet);
 }
        public ActionResult Edit(MealAdViewModel MealAdvm, FormCollection frmcoll)
        {
            if (ModelState.IsValid)
            {
                MealAd existingMealAd = db.MealAds.Find(MealAdvm.MealAdID);

                existingMealAd.MaxOrders = MealAdvm.MaxOrders;

                List<MealAd_Schedules> lstMealAd_Schedules = new List<MealAd_Schedules>();
                foreach (var allergenic in existingMealAd.MealAd_Schedules)
                    lstMealAd_Schedules.Add(allergenic);
                foreach (var allergenic in lstMealAd_Schedules)
                {
                    //mealitem.MealItems_AllergenicFoods.Remove(allergenic);

                    db.MealAd_Schedules.Remove(allergenic);

                    db.Entry(allergenic).State = EntityState.Deleted;
                    db.SaveChanges();
                }
                //existingMealAd.MealAd_Schedules.Remove(
                //db.SaveChanges();
                foreach (var schedules in MealAdvm.MealAdSchedules)
                {
                    MealAd_Schedules meadadschedule = new MealAd_Schedules();
                    meadadschedule.PickUpStartDateTime = schedules.PickUpStartDateTime;
                    meadadschedule.PickUpEndDateTime = schedules.PickUpEndDateTime;
                    meadadschedule.LastOrderDateTime = schedules.PickUpEndDateTime.AddHours(0);
                    existingMealAd.MealAd_Schedules.Add(meadadschedule);
                }

                //db.Entry(MealAd).State = EntityState.Modified;
                db.SaveChanges();
                eh.SendEmail("Update");
                return RedirectToAction("Index", new { userID = WebSecurity.CurrentUserId });
            }
            return View(MealAdvm);
        }