public ActionResult AlbumForm(CreateAlbumPostForm model) { model.IsNew = model.AlbumID == null; using (var Context = new ProjectDBEntities()) { if (!ModelState.IsValid) { return(View(model)); } var selectedGeneres = model.Generes.Where(x => x.IsChecked).ToList(); var userGuid = (Context.SiteUsers.Where(ax => ax.UserName == User.Identity.Name).FirstOrDefault <SiteUser>()).UserID; if (model.IsNew) { if (model.AlbumCover == null) { ModelState.AddModelError("AlbumCover", "Album Cover required.."); } if (!ModelState.IsValid) { return(View(model)); } if (!VerifyPictureExtension(model.AlbumCover.FileName)) { ModelState.AddModelError("TrackCover", "Only \".jpg\" & \".png\" files are allowed for cover.."); } if (!ModelState.IsValid) { return(View(model)); } var albumCoverName = Guid.NewGuid() + Path.GetExtension(model.AlbumCover.FileName); var albumCoverUploadPath = Server.MapPath("~/users/albums/images"); model.AlbumCover.SaveAs(Path.Combine(albumCoverUploadPath, albumCoverName)); var albumCoverPathForDb = "/users/albums/images/" + albumCoverName; Album album = new Album() { AlbumTitle = model.Title, AlbumCoverPath = albumCoverPathForDb, DateAdded = DateTime.UtcNow, IsActive = model.IsActive, UserID = userGuid }; Context.Albums.Add(album); Context.SaveChanges(); foreach (var item in selectedGeneres) { Context.AlbumGeneres.Add(new AlbumGenere { AlbumID = album.AlbumID, GenereID = (int)item.ID }); } Context.SaveChanges(); } else { var album = Context.Albums.Where(tx => tx.AlbumID == model.AlbumID).FirstOrDefault <Album>(); string albumCoverPathForDb = null; string oldCover = null; if (model.AlbumCover != null) { if (model.AlbumCover == null) { ModelState.AddModelError("AlbumCover", "Album Cover required.."); } if (!ModelState.IsValid) { return(View(model)); } if (!VerifyPictureExtension(model.AlbumCover.FileName)) { ModelState.AddModelError("TrackCover", "Only \".jpg\" & \".png\" files are allowed for cover.."); } if (!ModelState.IsValid) { return(View(model)); } oldCover = album.AlbumCoverPath; var albumCoverName = Guid.NewGuid() + Path.GetExtension(model.AlbumCover.FileName); var albumCoverUploadPath = Server.MapPath("~/users/albums/images"); model.AlbumCover.SaveAs(Path.Combine(albumCoverUploadPath, albumCoverName)); albumCoverPathForDb = "/users/albums/images/" + albumCoverName; } else { albumCoverPathForDb = album.AlbumCoverPath; } album.AlbumTitle = model.Title; album.AlbumID = (Guid)model.AlbumID; album.AlbumCoverPath = albumCoverPathForDb; album.DateAdded = DateTime.UtcNow; album.IsActive = model.IsActive; album.UserID = userGuid; foreach (var item in Context.AlbumGeneres.Where(x => x.AlbumID == album.AlbumID).ToList()) { Context.AlbumGeneres.Remove(item); } foreach (var item in selectedGeneres) { Context.AlbumGeneres.Add(new AlbumGenere { AlbumID = album.AlbumID, GenereID = (int)item.ID }); } Context.SaveChanges(); if (oldCover != null) { RemoveOld(oldCover); } } } return(RedirectToAction("ListAlbums")); }
public ActionResult AlbumForm(CreateAlbumPostForm model) { model.IsNew = model.AlbumID == null; using (var Context = new ProjectDBEntities()) { if (!ModelState.IsValid) return View(model); var selectedGeneres = model.Generes.Where(x => x.IsChecked).ToList(); var userGuid = (Context.SiteUsers.Where(ax => ax.UserName == User.Identity.Name).FirstOrDefault<SiteUser>()).UserID; if (model.IsNew) { if (model.AlbumCover == null) ModelState.AddModelError("AlbumCover", "Album Cover required.."); if (!ModelState.IsValid) return View(model); if (!VerifyPictureExtension(model.AlbumCover.FileName)) ModelState.AddModelError("TrackCover", "Only \".jpg\" & \".png\" files are allowed for cover.."); if (!ModelState.IsValid) return View(model); var albumCoverName = Guid.NewGuid() + Path.GetExtension(model.AlbumCover.FileName); var albumCoverUploadPath = Server.MapPath("~/users/albums/images"); model.AlbumCover.SaveAs(Path.Combine(albumCoverUploadPath, albumCoverName)); var albumCoverPathForDb = "/users/albums/images/" + albumCoverName; Album album = new Album() { AlbumTitle = model.Title, AlbumCoverPath = albumCoverPathForDb, DateAdded = DateTime.UtcNow, IsActive = model.IsActive, UserID = userGuid }; Context.Albums.Add(album); Context.SaveChanges(); foreach (var item in selectedGeneres) { Context.AlbumGeneres.Add(new AlbumGenere { AlbumID = album.AlbumID, GenereID = (int)item.ID }); } Context.SaveChanges(); } else { var album = Context.Albums.Where(tx => tx.AlbumID == model.AlbumID).FirstOrDefault<Album>(); string albumCoverPathForDb = null; string oldCover = null; if (model.AlbumCover != null) { if (model.AlbumCover == null) ModelState.AddModelError("AlbumCover", "Album Cover required.."); if (!ModelState.IsValid) return View(model); if (!VerifyPictureExtension(model.AlbumCover.FileName)) ModelState.AddModelError("TrackCover", "Only \".jpg\" & \".png\" files are allowed for cover.."); if (!ModelState.IsValid) return View(model); oldCover = album.AlbumCoverPath; var albumCoverName = Guid.NewGuid() + Path.GetExtension(model.AlbumCover.FileName); var albumCoverUploadPath = Server.MapPath("~/users/albums/images"); model.AlbumCover.SaveAs(Path.Combine(albumCoverUploadPath, albumCoverName)); albumCoverPathForDb = "/users/albums/images/" + albumCoverName; } else albumCoverPathForDb = album.AlbumCoverPath; album.AlbumTitle = model.Title; album.AlbumID = (Guid)model.AlbumID; album.AlbumCoverPath = albumCoverPathForDb; album.DateAdded = DateTime.UtcNow; album.IsActive = model.IsActive; album.UserID = userGuid; foreach (var item in Context.AlbumGeneres.Where(x => x.AlbumID == album.AlbumID).ToList()) { Context.AlbumGeneres.Remove(item); } foreach (var item in selectedGeneres) { Context.AlbumGeneres.Add(new AlbumGenere { AlbumID = album.AlbumID, GenereID = (int)item.ID }); } Context.SaveChanges(); if (oldCover != null) RemoveOld(oldCover); } } return RedirectToAction("ListAlbums"); }