public ActionResult Upload() { AlbumUploadViewModel albumViewModel = new AlbumUploadViewModel { Title = "Untitled" }; albumViewModel.Albums = this.repository.GetAlbumsByOwner(User.Identity.Name.ToLowerInvariant()); if (albumViewModel.Albums.Count() > 0) { return(View(albumViewModel)); } return(RedirectToAction("Create")); }
public ActionResult Upload(AlbumUploadViewModel model) { if (Request.Files.Count != 1 || Request.Files[0].ContentLength == 0) { ModelState.AddModelError("Photo", "Provide a photo"); } if (!ModelState.IsValid) { model.Albums = this.repository.GetAlbumsByOwner(User.Identity.Name.ToLowerInvariant()); return(View(model)); } var photo = Request.Files[0]; // generate a unique name string id = SlugHelper.GetSlug(model.Title); string owner = User.Identity.Name.ToLowerInvariant(); string albumName = model.Album; try { this.repository.Add( new Photo() { AlbumId = albumName, Description = model.Description, Owner = owner, PhotoId = id, Title = model.Title, ThumbnailUrl = "/Content/images/processing.png", Url = "/Content/images/processing.png", RawTags = string.IsNullOrEmpty(model.Tags) ? "uncategorized" : model.Tags }, photo.InputStream, photo.ContentType, photo.FileName); } catch (PhotoNameAlreadyInUseException) { ModelState.AddModelError("Title", "A picture with the same name already exists on this album"); model.Albums = this.repository.GetAlbumsByOwner(User.Identity.Name.ToLowerInvariant()); return(View(model)); } return(RedirectToAction("Index", "Photo", new { owner = owner, album = model.Album, photoId = id })); }