public JsonResult Delete(AccommodationPackagesActionModel formModel)
        {
            var apFromDb = APServices.GetAccommodationPackageById(formModel.Id);

            bool result = APServices.DeleteAccommodationPackage(apFromDb);

            return(JsonDataResult.Result(result));
        }
        public ActionResult Delete(int id)
        {
            AccommodationPackagesActionModel model = new AccommodationPackagesActionModel();

            var apFromDB = APServices.GetAccommodationPackageById(id);

            model.Id   = apFromDB.Id;
            model.Name = apFromDB.Name;

            return(PartialView("_Delete", model));
        }
        public JsonResult Action(AccommodationPackagesActionModel formModel)
        {
            bool result = false;

            //model.pictureIds = "22,23,24" => ["22","23","24"] => [22,23,24]
            var picsIds = !string.IsNullOrEmpty(formModel.PictureIds) ? formModel.PictureIds.Split(',').Select(int.Parse).ToList() : new List <int>();

            var pictures = DBServices.GetPicturesByIds(picsIds);

            if (formModel.Id == 0) //create
            {
                AccommodationPackage ap = new AccommodationPackage();

                ap.Name                = formModel.Name;
                ap.NoOfRoom            = formModel.NoOfRoom;
                ap.FeePerNight         = formModel.FeePerNight;
                ap.AccommodationTypeId = formModel.AccommodationTypeId;

                ap.AccommodationPackagePictures = new List <AccommodationPackagePicture>();
                ap.AccommodationPackagePictures.AddRange(pictures.Select(p => new AccommodationPackagePicture()
                {
                    PictureId = p.Id
                }));

                result = APServices.AddAccommodationPackage(ap);
            }
            else //edit
            {
                var ap = APServices.GetAccommodationPackageById(formModel.Id);

                ap.Name                = formModel.Name;
                ap.NoOfRoom            = formModel.NoOfRoom;
                ap.FeePerNight         = formModel.FeePerNight;
                ap.AccommodationTypeId = formModel.AccommodationTypeId;

                //delete existing accommodation pics to add new one after editing
                APServices.DeleteAccommdationPackagePictures(ap.Id);

                // in edit : need aPId to edit it not make a new one
                ap.AccommodationPackagePictures.AddRange(pictures.Select(p => new AccommodationPackagePicture()
                {
                    AccommodationPackageId = ap.Id,
                    PictureId = p.Id
                }));

                result = APServices.UpdateAccommodationPackage(ap);
            }

            return(JsonDataResult.Result(result));
        }
        public ActionResult Action(int?id)
        {
            AccommodationPackagesActionModel model = new AccommodationPackagesActionModel();

            if (id.HasValue) // edit
            {
                var apFromDB = APServices.GetAccommodationPackageById(id.Value);
                model.Id                           = apFromDB.Id;
                model.Name                         = apFromDB.Name;
                model.NoOfRoom                     = apFromDB.NoOfRoom;
                model.FeePerNight                  = apFromDB.FeePerNight;
                model.AccommodationTypeId          = apFromDB.AccommodationTypeId;
                model.AccommodationPackagePictures = apFromDB.AccommodationPackagePictures;
            }

            model.AccommodationTypes = ATServices.GetAllAccommodationTypes();

            return(PartialView("_Action", model));
        }