public ActionResult Upload(IEnumerable <HttpPostedFileBase> files, PhotoUploadListModel listModel) { var model = Session["Uploads"] != null ? Session["Uploads"] as PhotoUploadListModel : new PhotoUploadListModel(); int maxId = 0; var photos = _photoService.GetAll().ToList(); // Если в БД уже есть фотографии, значит получаем макс. Id фотографии if (photos.Count > 0) { maxId = photos.Max(x => x.Id); } // Проверяем, имеются ли в сессии уже загруженные фотогарфии, если да, то берем за макс Id значение из сессии if (model.Uploads.Any()) { maxId = model.Uploads.Max(x => x.Id); } foreach (var file in files) { var filename = $"photo_AS-S{++maxId}"; var photoUploadModel = new PhotoUploadModel() { Id = maxId, FileName = filename, PhotoPath = "~/Content/Gallery/Photos/" + filename + Path.GetExtension(file.FileName).ToLower(), ThumbnailPath = "~/Content/Gallery/Thumbs/" + filename + "s" + Path.GetExtension(file.FileName).ToLower(), CreationDate = TimeZone.CurrentTimeZone.ToLocalTime(DateTime.Now), ShowRandom = false }; if (file.ContentLength < 4048576) { if (file != null) { var textAttributes = _textAttrService.GetAll().FirstOrDefault(); ImageProcessor.CreateThumbnail(350, 350, file, photoUploadModel.ThumbnailPath); ImageProcessor.WatermarkImage(photoUploadModel.PhotoPath, file, listModel.ImageAttributes, textAttributes); model.Uploads.Add(photoUploadModel); Session["Uploads"] = model; } } } return(PartialView(model)); }
public PhotoUploadListModel Upload(IEnumerable <HttpPostedFileBase> files, PhotoUploadListModel listModel, IImageProcessor processor) { var model = HttpContext.Current.Session["Uploads"] != null ? HttpContext.Current.Session["Uploads"] as PhotoUploadListModel : new PhotoUploadListModel(); int maxId = 0; int order = 0; var photos = GetAll().ToList(); // Если в БД уже есть фотографии, значит получаем макс. Id фотографии if (photos.Count > 0) { maxId = photos.Max(x => x.Id); order = photos.Max(x => x.Order); } // Проверяем, имеются ли в сессии уже загруженные фотогарфии, если да, то берем за макс Id значение из сессии if (model.Uploads.Any()) { maxId = model.Uploads.Max(x => x.Id); order = model.Uploads.Max(x => x.Order); } foreach (var file in files) { var filename = $"photo_AS-S{++maxId}"; var photoUploadModel = new PhotoUploadModel() { Id = maxId, FileName = filename, PhotoPath = "~/SysData/PhotoGallery/Photos/" + filename + Path.GetExtension(file.FileName).ToLower(), ThumbnailPath = "~/SysData/PhotoGallery/Thumbs/" + filename + "s" + Path.GetExtension(file.FileName).ToLower(), CreationDate = TimeZone.CurrentTimeZone.ToLocalTime(DateTime.Now), ShowRandom = false, IsForBackground = false, ImageAttributes = new ImageAttrModel() { Id = listModel.ImageAttributes.Id, PhotoId = 0, IsWatermarkApplied = listModel.ImageAttributes.IsWatermarkApplied, IsWatermarkBlack = listModel.ImageAttributes.IsWatermarkBlack, IsSignatureApplied = listModel.ImageAttributes.IsSignatureApplied, IsSignatureBlack = listModel.ImageAttributes.IsSignatureBlack, IsWebSiteTitleApplied = listModel.ImageAttributes.IsWebSiteTitleApplied, IsWebSiteTitleBlack = listModel.ImageAttributes.IsWebSiteTitleBlack, IsRightSide = listModel.ImageAttributes.IsRightSide }, Album = _providerAlbum.GetOne(listModel.AlbumId), Order = ++order }; if (file.ContentLength < 4048576) { if (file != null) { processor.CreateThumbnail(file, 350, 350, filename); photoUploadModel.ImageAttributes.PhotoId = photoUploadModel.Id; file.SaveAs(HttpContext.Current.Server.MapPath(photoUploadModel.PhotoPath)); model.Uploads.Add(photoUploadModel); HttpContext.Current.Session["Uploads"] = model; } } } model.Albums = _providerAlbum.GetAll().Select(x => new SelectListItem() { Value = x.Id.ToString(), Text = x.TitleRu }); return(model); }
public ActionResult Upload(IEnumerable <HttpPostedFileBase> files, PhotoUploadListModel listModel) { var model = _photoService.Upload(files, listModel, _imageProcessor); return(PartialView(model)); }