コード例 #1
0
        public ActionResult EditImage(int id)
        {
            var item = galleryRepository.GetById(id);
            if (item == null)
            {
                TempData[Const.ActionErrorInfo] = "Такое изображение не найдено";
                return RedirectToAction("Gallery");
            }

            var viewModel = new GalleryItemViewModel
                {
                    Id = item.Id,
                    Title = item.Title,
                    Text = item.Text,
                    AlbumId = item.AlbumId,
                    ImagePath = item.File.FileName
                };
            ViewBag.AlbumName = item.Album.Title;

            return View(viewModel);
        }
コード例 #2
0
        public ActionResult EditImage(GalleryItemViewModel gvm, HttpPostedFileBase file)
        {
            if(ModelState.IsValid)
            {
                using (new UnitOfWork(_currentContext))
                {
                    var galleryItem = galleryRepository.GetById(gvm.Id.Value);
                    //upload file first
                    if (file != null)
                    {
                        var ticks = DateTime.Now.Ticks;
                        var fileName = String.Format("gallery-{0}", ticks) + Path.GetExtension(file.FileName);
                        var absoluteTempPath = Server.MapPath("~/Content/images/uploads/temp/");
                        var absolutePath = Server.MapPath("~/Content/images/uploads/gallery/");
                        var fullVirtualPath = "~/Content/images/uploads/gallery/" + fileName;
                        var absoluteThumbnailPath = Server.MapPath("~/Content/images/uploads/gallery/thumbnails/");
                        var fullVirtualThumbnailPath = "~/Content/images/uploads/gallery/thumbnails/" + fileName;
                        //create a temp file first, then compress it
                        FileUploader.UploadFile(file, fileName,
                                                absoluteTempPath);

                        var encoder = new ImageEncoder();
                        encoder.Compress(absoluteTempPath + fileName, absolutePath + fileName, 800, 600);
                        encoder.Compress(absoluteTempPath + fileName, absoluteThumbnailPath + fileName, 290, 217);
                        //after compressing deleting original file
                        FileUploader.DeleteFile(absoluteTempPath + fileName);

                        var fullImage = new File()
                            {
                                FileName = fullVirtualPath,
                                FilePurposeId = (int) FilePurposes.Gallery
                            };

                        var thumbnailImage = new File()
                            {
                                FileName = fullVirtualThumbnailPath,
                                FilePurposeId = (int) FilePurposes.Gallery
                            };
                        //delete old files
                        FileUploader.DeleteFile(Server.MapPath(galleryItem.File.FileName));
                        FileUploader.DeleteFile(Server.MapPath(galleryItem.Thumbnail.FileName));
                        filesRepository.Remove(galleryItem.FileId);
                        filesRepository.Remove(galleryItem.ThumbnailFileId);

                        galleryItem.File = fullImage;
                        galleryItem.Thumbnail = thumbnailImage;
                    }

                    galleryItem.Title = gvm.Title;
                    galleryItem.Text = gvm.Text;
                    galleryItem.PostedAt = DateTime.Now;
                    galleryItem.Account = accountRepository.GetByUsername(CurrentUserName);
                }
                TempData[Const.ActionResultInfo] = "Изображение отредактировано";
                return RedirectToAction("Album", new { id = gvm.AlbumId});
            }

            TempData[Const.ActionErrorInfo] = "Ошибка редактирования изображения. Проверьте корректность введенных данных";
            return View(gvm);
        }
コード例 #3
0
        public ActionResult AddImage(int id)
        {
            var album = albumRepository.GetById(id);
            if(album == null)
            {
                TempData[Const.ActionErrorInfo] = "Такой альбом не найден";
                return RedirectToAction("Gallery");
            }

            ViewBag.AlbumId = id;
            ViewBag.AlbumName = album.Title;

            var viewModel = new GalleryItemViewModel {AlbumId = id};
            return View(viewModel);
        }