public async Task <ActionResult> Create(int documentId = 0, int keywordId = 0, int classificationId = 0)
        {
            var image = new Image();

            if (db.Set <Document>().Any(d => d.Id == documentId))
            {
                image.DocumentId = documentId;
                image.ImageCode  = CodeGenerator.SuggestImageCode(documentId);
            }

            if (keywordId != 0)
            {
                image.Keywords = await db.Set <Keyword>().Where(k => k.Id == keywordId).ToListAsync();
            }

            if (classificationId != 0)
            {
                image.ClassificationId = classificationId;
            }

            image.Translations.Add(new ImageTranslation
            {
                LanguageCode = LanguageDefinitions.DefaultLanguage
            });

            var model = new ImageEditViewModel(image);

            model.PopulateDropDownLists(db.Set <Document>(), db.Set <Classification>(), db.Set <Keyword>());

            return(View(model));
        }
Exemple #2
0
        public ActionResult Edit(ImageEditViewModel imageEditViewModel, FormCollection formCollection)
        {
            if (ModelState.IsValid)
            {
                var image = _imageRepository.Query().Find(imageEditViewModel.Id);
                var now   = DateTime.Now;
                image.Description = imageEditViewModel.Description;
                image.UpdateDate  = now;

                if (imageEditViewModel.File != null)
                {
                    var filename = now.ToString("yyyy-MM-dd-HH-mm-ss") + "-" + Guid.NewGuid() +
                                   Path.GetExtension(imageEditViewModel.File.FileName);

                    image.Path = filename;
                    image.Name = imageEditViewModel.File.FileName;

                    var path = Path.Combine(Server.MapPath(@"~\Content\Images"), filename);
                    imageEditViewModel.File.SaveAs(path);
                }
                _imageRepository.Update(image);
                _unitOfWork.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(imageEditViewModel));
        }
Exemple #3
0
        public IActionResult Edit(string id, ImageEditViewModel image)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest());
            }
            if (string.IsNullOrEmpty(id))
            {
                return(this.NotFound());
            }
            var imageObj = this.imageService.GetImageModel(id);

            if (image == null)
            {
                return(this.NotFound());
            }

            if (this.userManager.GetUserId(this.User) != imageObj.UploaderId && !this.userManager.IsInRoleAsync(this.userManager.GetUserAsync(this.User).GetAwaiter().GetResult(), GlobalConstants.ImageModeratorRole).GetAwaiter().GetResult())
            {
                return(this.Redirect("/Account/Login"));
            }

            this.imageService.Edit(id, image.Title, image.Category);

            return(this.RedirectToAction("Index", "Home", new { area = "Image" }));
        }
        public async Task <ActionResult> Create(ImageEditViewModel model)
        {
            if (DoesCodeAlreadyExist(model.Image))
            {
                ModelState.AddModelError("Image.ImageCode", ImageStrings.CodeAlreadyExists);
            }

            if (ModelState.IsValid)
            {
                if (model.ImageUpload != null)
                {
                    var fileName = Guid.NewGuid().ToString();
                    var path     = Server.MapPath("~/Public/Images/");

                    FileUploadHelper.GenerateVersions(model.ImageUpload.InputStream, path + fileName);

                    model.Image.ImageUrl = fileName;
                }

                model.Image.Keywords =
                    db.Set <Keyword>()
                    .Where(kw => model.KeywordIds.Contains(kw.Id))
                    .ToList();

                db.Add(model.Image);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            model.PopulateDropDownLists(db.Set <Document>(), db.Set <Classification>(), db.Set <Keyword>());

            return(View(model));
        }
Exemple #5
0
        public async Task <IActionResult> Edit(string id, string imageTitle, string userId)
        {
            if (id == null || imageTitle == null || userId == null)
            {
                return(NotFound());
            }

            var auth = new FirebaseAuthProvider(new FirebaseConfig(FirebaseKeys.apiKey));
            var a    = await auth.SignInWithEmailAndPasswordAsync(FirebaseKeys.AuthEmail, FirebaseKeys.AuthPassword);

            var task = new FirebaseStorage(
                FirebaseKeys.Bucket,
                new FirebaseStorageOptions
            {
                AuthTokenAsyncFactory = () => Task.FromResult(a.FirebaseToken),
                ThrowOnCancel         = true
            })
                       .Child("images")
                       .Child($"{imageTitle}")
                       .GetDownloadUrlAsync().Result;


            Tuple <string, string, string> firebaseImagesUrl = new Tuple <string, string, string>(id, task, imageTitle);

            ImageEditViewModel imageEditViewModel = new ImageEditViewModel()
            {
                FirebaseImagesUrl = firebaseImagesUrl
            };

            return(View(imageEditViewModel));
        }
        public ImageEditPage(ProductImage item)
        {
            InitializeComponent();
            var viewModel = new ImageEditViewModel(item);

            _item          = item;
            BindingContext = viewModel;
            DataResource();
        }
Exemple #7
0
        public ActionResult Edit(int id)
        {
            var image = _imageRepository.Query().Find(id);
            var model = new ImageEditViewModel
            {
                Description = image.Description,
                Id          = image.Id
            };

            return(View(model));
        }
        public async Task <ActionResult> Edit(ImageEditViewModel model)
        {
            if (DoesCodeAlreadyExist(model.Image))
            {
                ModelState.AddModelError("Image.ImageCode", ImageStrings.CodeAlreadyExists);
            }

            if (ModelState.IsValid)
            {
                // "Force-load" the image and the keywords.
                await db.ForceLoadAsync(model.Image, i => i.Keywords);

                db.Update(model.Image);

                model.Image.Keywords = db.Set <Keyword>()
                                       .Where(k => model.KeywordIds.Contains(k.Id)).ToList();

                foreach (var t in model.Image.Translations)
                {
                    db.UpdateTranslation(t);
                }

                if (model.ImageUpload != null)
                {
                    var fileName =
                        db.GetValueFromDb(model.Image, i => i.ImageUrl) ??
                        Guid.NewGuid().ToString();

                    var path = Server.MapPath("~/Public/Images/");
                    Directory.CreateDirectory(path);

                    FileUploadHelper.GenerateVersions(model.ImageUpload.InputStream, path + fileName);

                    model.Image.ImageUrl = fileName;
                }
                else
                {
                    db.ExcludeFromUpdate(model.Image, i => new { i.ImageUrl });
                }

                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            model.PopulateDropDownLists(db.Set <Document>(), db.Set <Classification>(), db.Set <Keyword>());

            return(View(model));
        }
Exemple #9
0
        public ActionResult Edit(int id)
        {
            var image = dbContext.Images.Find(id);

            if (image == null)
            {
                return(HttpNotFound());
            }

            var model = new ImageEditViewModel
            {
                Id      = image.Id,
                Title   = image.Title,
                AltText = image.AltText,
                Caption = image.Caption
            };

            return(View(model));
        }
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var image = await db.GetByIdAsync(id);

            if (image == null)
            {
                return(HttpNotFound());
            }

            var model = new ImageEditViewModel(image);

            model.PopulateDropDownLists(db.Set <Document>(), db.Set <Classification>(), db.Set <Keyword>());

            return(View(model));
        }
        public ActionResult EditImage(ImageEditViewModel viewModel)
        {
            if (!Services.Authorizer.Authorize(Permissions.ManageImageGallery, T("Cannot edit image")))
            {
                return(new HttpUnauthorizedResult());
            }

            try {
                // TODO: Use an validation framewok on model, this is temporary
                if (viewModel.Image.Caption != null && viewModel.Image.Caption.Length > 255)
                {
                    ModelState.AddModelError("Caption", T("The caption length should not be longer than 255 characters").ToString());
                    return
                        (View(new ImageEditViewModel
                    {
                        ImageGalleryName = viewModel.ImageGalleryName,
                        Image = _imageGalleryService.GetImage(viewModel.ImageGalleryName, viewModel.Image.Name)
                    }));
                }

                try {
                    _imageGalleryService.UpdateImageProperties(viewModel.ImageGalleryName, viewModel.Image.Name,
                                                               viewModel.Image.Title, viewModel.Image.Caption);
                }
                catch (Exception exception) {
                    Services.Notifier.Error(T("Editing image properties failed: {0}", exception.Message));
                    return
                        (View(new ImageEditViewModel
                    {
                        ImageGalleryName = viewModel.ImageGalleryName,
                        Image = _imageGalleryService.GetImage(viewModel.ImageGalleryName, viewModel.Image.Name)
                    }));
                }

                Services.Notifier.Information(T("Image properties successfully modified"));
            }
            catch (Exception exception) {
                Services.Notifier.Error(T("Saving image failed: {0}", exception.Message));
            }

            return(RedirectToAction("Images", new { imageGalleryName = viewModel.ImageGalleryName }));
        }
Exemple #12
0
        public ActionResult Edit(int id, ImageEditViewModel model)
        {
            var validImageTypes = new string[]
            {
                "image/gif",
                "image/jpeg",
                "image/pjpeg",
                "image/png"
            };

            if (!validImageTypes.Contains(model.ImageUpload.ContentType))
            {
                ModelState.AddModelError("ImageUpload", "Please choose either a GIF, JPG or PNG image.");
            }

            if (ModelState.IsValid)
            {
                var image = dbContext.Images.Find(id);
                if (image == null)
                {
                    return(new HttpNotFoundResult());
                }

                image.Title   = model.Title;
                image.AltText = model.AltText;
                image.Caption = model.Caption;

                if (model.ImageUpload != null && model.ImageUpload.ContentLength > 0)
                {
                    var uploadDir = "~/uploads";
                    var imagePath = Path.Combine(Server.MapPath(uploadDir), model.ImageUpload.FileName);
                    var imageUrl  = Path.Combine(uploadDir, model.ImageUpload.FileName);
                    model.ImageUpload.SaveAs(imagePath);
                    image.ImageUrl = imageUrl;
                }

                dbContext.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(model));
        }
Exemple #13
0
        public void EditImage_Should_Return_ImageEditViewModel()
        {
            // Arrange
            ImageGalleryImage image = new ImageGalleryImage {
                Name = "image1"
            };

            _imageGalleryServiceMock.Setup(imageGalleryService => imageGalleryService.GetImage("gallery", "image1")).
            Returns(image).Verifiable();

            // Act
            var result = _adminController.EditImage("gallery", "image1");

            // Assert
            _imageGalleryServiceMock.Verify();
            result.AssertViewRendered().ForView("").WithViewData <ImageEditViewModel>();
            ImageEditViewModel model = ((ViewResult)result).Model as ImageEditViewModel;

            Assert.IsNotNull(model);
            Assert.AreEqual("gallery", model.ImageGalleryName);
            Assert.AreEqual("image1", model.Image.Name);
        }