public ActionResult CreateNewSlide(SlideInputViewModel model) { if (!ModelState.IsValid) { return(RedirectToAction("Index")); } if (model.Slide != null && model.Slide.ContentLength > 0) { // add new slides to database var newSlide = new Slide(); newSlide.PictureName = Helpers.CreateUniqueFileName(model.Slide.FileName); newSlide.PictureType = Helpers.GetFileTypeFromName(model.Slide.FileName).ConvertToPictureType(); slides.Add(newSlide); slides.Save(); // get last inserted slide by CreatedOn field newSlide = this.slides.All().OrderByDescending(s => s.CreatedOn).FirstOrDefault(); Slide currentSlide, nextSlide, prevSlide; if (model.Position == "after") // Create new slide after slide with given slideId { currentSlide = this.slides.GetById(model.SlideId); if (currentSlide.NextSlideId == null) { currentSlide.NextSlideId = newSlide.Id; newSlide.PrevSlideId = currentSlide.Id; } else { nextSlide = this.slides.GetById((int)currentSlide.NextSlideId); currentSlide.NextSlideId = newSlide.Id; newSlide.PrevSlideId = currentSlide.Id; nextSlide.PrevSlideId = newSlide.Id; newSlide.NextSlideId = nextSlide.Id; } } else if (model.Position == "before") { currentSlide = this.slides.GetById(model.SlideId); if (currentSlide.PrevSlideId == null) { currentSlide.PrevSlideId = newSlide.Id; newSlide.NextSlideId = currentSlide.Id; } else { prevSlide = this.slides.GetById((int)currentSlide.PrevSlideId); currentSlide.PrevSlideId = newSlide.Id; newSlide.NextSlideId = currentSlide.Id; prevSlide.NextSlideId = newSlide.Id; newSlide.PrevSlideId = prevSlide.Id; } } // store the slide picture inside ~/Content/Images/Home folder var path = Path.Combine(Server.MapPath(GlobalConstants.SliderImagesPath), newSlide.PictureName + "." + newSlide.PictureType); model.Slide.SaveAs(path); // save changes to database slides.Save(); } return(RedirectToAction("Index")); }
public ActionResult CreateNewSlide(SlideInputViewModel model) { if (!ModelState.IsValid) { return RedirectToAction("Index"); } if (model.Slide != null && model.Slide.ContentLength > 0) { // add new slides to database var newSlide = new Slide(); newSlide.PictureName = Helpers.CreateUniqueFileName(model.Slide.FileName); newSlide.PictureType = Helpers.GetFileTypeFromName(model.Slide.FileName).ConvertToPictureType(); slides.Add(newSlide); slides.Save(); // get last inserted slide by CreatedOn field newSlide = this.slides.All().OrderByDescending(s => s.CreatedOn).FirstOrDefault(); Slide currentSlide, nextSlide, prevSlide; if (model.Position == "after") // Create new slide after slide with given slideId { currentSlide = this.slides.GetById(model.SlideId); if (currentSlide.NextSlideId == null) { currentSlide.NextSlideId = newSlide.Id; newSlide.PrevSlideId = currentSlide.Id; } else { nextSlide = this.slides.GetById((int)currentSlide.NextSlideId); currentSlide.NextSlideId = newSlide.Id; newSlide.PrevSlideId = currentSlide.Id; nextSlide.PrevSlideId = newSlide.Id; newSlide.NextSlideId = nextSlide.Id; } } else if(model.Position == "before") { currentSlide = this.slides.GetById(model.SlideId); if(currentSlide.PrevSlideId == null) { currentSlide.PrevSlideId = newSlide.Id; newSlide.NextSlideId = currentSlide.Id; } else { prevSlide = this.slides.GetById((int)currentSlide.PrevSlideId); currentSlide.PrevSlideId = newSlide.Id; newSlide.NextSlideId = currentSlide.Id; prevSlide.NextSlideId = newSlide.Id; newSlide.PrevSlideId = prevSlide.Id; } } // store the slide picture inside ~/Content/Images/Home folder var path = Path.Combine(Server.MapPath(GlobalConstants.SliderImagesPath), newSlide.PictureName + "." + newSlide.PictureType); model.Slide.SaveAs(path); // save changes to database slides.Save(); } return RedirectToAction("Index"); }