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