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); }
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); }
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); }