Esempio n. 1
0
        public ActionResult Edit(EditCribViewModel model)
        {
            if(!ModelState.IsValid)
            {
                return View(model);
            }

            //find the crib to update
            RentCrib rentCrib = db.RentCribs.First(x => (x.Id == model.Id && x.User.Email == User.Identity.Name));

            if (rentCrib == null)
            {
                //Handle as error
                throw new ArgumentNullException("Error" + " occured while processing your request. Please contact support.");
            }
            rentCrib.Title = model.Title;
            rentCrib.Description = model.Description;
            rentCrib.Location = model.Location;
            rentCrib.NumberOfRooms = model.NumberOfRooms;
            rentCrib.Available = model.AvailableDate;
            rentCrib.MonthlyPrice = model.MonthlyRent;

            #region set images edit
            if(model.MainImage != null)
            { 
                rentCrib.images.First(x => x.Cover).Image =  CribFileHelper.GetByteArray(model.MainImage);
            }
            var supportingImages = rentCrib.images.Where(x => x.Cover == false).ToList();
            if(supportingImages.Count == 0)
            {
                if(model.Image1 != null)
                {
                    rentCrib.images.Add(new CribImages{Image = CribFileHelper.GetByteArray(model.Image1)});
                }
                if (model.Image2 != null)
                {
                    rentCrib.images.Add(new CribImages{Image = CribFileHelper.GetByteArray(model.Image2)});

                }
            }
            else if (supportingImages.Count == 1)
            {
                if(model.Image1 != null)
                {
                    supportingImages.First().Image = CribFileHelper.GetByteArray(model.Image1);
                }
                if(model.Image2 != null)
                {
                    rentCrib.images.Add(new CribImages { Image = CribFileHelper.GetByteArray(model.Image2) });
                }
            }
            else if(supportingImages.Count == 2)
            {
                if(model.Image1 != null)
                {
                    supportingImages.First().Image = CribFileHelper.GetByteArray(model.Image1);
                }
                if(model.Image2 != null)
                {
                    supportingImages.Last().Image = CribFileHelper.GetByteArray(model.Image2);

                }
            }
            #endregion
            db.Entry(rentCrib).State = EntityState.Modified;
            int success = db.SaveChanges();

            //successfully updated a post
            return RedirectToAction("View", new {id = model.Id});
        }
Esempio n. 2
0
        public ActionResult Edit(int? id)
        {

            if (id == null)
            {
                throw new ArgumentNullException("Error" + " occured while processing your request. Please contact support.");
            }
            var model = db.RentCribs.Find(id);
            
            if (model == null)
            {
                throw new ArgumentNullException("Error" + " occured while processing your request. Please contact support.");
            }

            if (model.User.UserName != HttpContext.User.Identity.Name)
            {
                throw new UnauthorizedAccessException("Error : You are not authorized to perform this action.");
            }
            EditCribViewModel viewModel = new EditCribViewModel
            {
                Id = model.Id,
                Title = model.Title,
                Description = model.Description,
                MonthlyRent = model.MonthlyPrice,
                AvailableDate = model.Available,
                Location = model.Location,
                NumberOfRooms = model.NumberOfRooms,
            };
            //get images 
            ViewBag.CoverImage = Convert.ToBase64String(model.images.Where(x => x.Cover).First().Image);

            ViewBag.SupportingImages = (from image in model.images where image.Cover != true select Convert.ToBase64String(image.Image)).ToList();
          
            return View(viewModel);
        }