Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }