コード例 #1
0
        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"));
        }
コード例 #2
0
        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");
        }