public ActionResult Active(string userId) { try { Guid guid = Guid.Parse(userId); using (var Context = new ProjectDBEntities()) { var User = Context.SiteUsers.Where(sxu => sxu.UserID == guid).ToList(); if (User.Count > 0) { User[0].UserStatusID = 2; if (Context.SaveChanges() == 1) ViewBag.Message = "User status updated successfully.."; else ViewBag.Message = "Unable to update user.."; } else ViewBag.Message = "No such user.."; return RedirectToAction("All"); } } catch(Exception) { return HttpNotFound(); } }
public ActionResult Form(GenerePostForm model) { model.IsNew = model.GenereID == null; using (var Context = new ProjectDBEntities()) { var validation = Context.Generes.Where(gx => gx.GenereDetail == model.Detail).FirstOrDefault<Genere>(); if (validation != null) ModelState.AddModelError("Detail", "This \"Genere\" already exist.. "); if (!ModelState.IsValid) return View(model); if (model.IsNew) { Genere genere = new Genere() { GenereDetail = model.Detail, IsActive = model.IsActive }; Context.Generes.Add(genere); } else { var genere = Context.Generes.Where(nx => nx.GenereID == model.GenereID).FirstOrDefault<Genere>(); genere.GenereDetail = model.Detail; genere.IsActive = model.IsActive; } Context.SaveChanges(); } return RedirectToAction("Index"); }
public ActionResult ChangePassword(AdminChangePasswordViewModel model) { if(ModelState.IsValid) { if(User.Identity.IsAuthenticated && User.IsInRole("admin")) { using(var Context = new ProjectDBEntities()) { var OldHashedPassword = Hashing.CreateHash(model.OldPassword); var user = Context.Administrators.Where(ax => ax.AdminUserName == User.Identity.Name && ax.AdminPassword == OldHashedPassword).FirstOrDefault<Administrator>(); if (user != null) { user.AdminPassword = Hashing.CreateHash(model.NewPassword); Context.SaveChanges(); ViewBag.Message = "Password Changed Successfully to " + model.NewPassword; return View(new AdminChangePasswordViewModel()); } else { ViewBag.Message = "Old password seems different"; return View(new AdminChangePasswordViewModel()); } } } } return Content(User.Identity.Name); }
public ActionResult New(UsersCreateViewModel model) { if (ModelState.IsValid) { using (var Context = new ProjectDBEntities()) { var UserStatus = Context.UserStatus.Where(usx => usx.UserStatusDetail == "Pending").FirstOrDefault<UserStatu>(); model.DateCreated = DateTime.Now; model.DateActivated = DateTime.Now; Mapper.CreateMap<UsersCreateViewModel, SiteUser>(); SiteUser User = Mapper.Map<SiteUser>(model); User.UserStatusID = UserStatus.UserStatusID; User.UserPass = Hashing.CreateHash(model.UserPass); Context.SiteUsers.Add(User); if (Context.SaveChanges() == 1) ViewBag.Message = "User added successfully.."; else ViewBag.Message = "User cannot be added at the moment.."; } } return View(new UsersCreateViewModel()); }
public ActionResult Delete(int genereId) { using (var Context = new ProjectDBEntities()) { if (!Context.Generes.Any(n => n.GenereID == genereId)) return HttpNotFound(); else { Context.Generes.Remove(Context.Generes.Where(nx => nx.GenereID == genereId).FirstOrDefault<Genere>()); Context.SaveChanges(); } return RedirectToAction("Index"); } }
public ActionResult EditProfile(EditProfileViewModel model) { if(!ModelState.IsValid) { return View(model); } using (var Context = new ProjectDBEntities()) { var user = Context.SiteUsers.Where(x => x.UserName == User.Identity.Name).FirstOrDefault<SiteUser>(); if (user.UserID != model.ID) { ViewBag.Message = "You cannot edit others profile.."; return View(model); } var userEmailValidation = Context.SiteUsers .Where(x => x.UserEmail == model.Email && x.UserID != user.UserID) .FirstOrDefault<SiteUser>(); if (userEmailValidation != null) { ViewBag.Message = "There is already a user with same email"; return View(model); } user.UserFirstName = model.FirstName; user.UserMiddleName = model.MiddleName; user.UserLastName = model.LastName; user.UserEmail = model.Email; Context.SaveChanges(); ViewBag.Message = "Profile edited Successfully.."; return View(model); } }
public ActionResult Like(Guid id) { var Context = new ProjectDBEntities(); var userID = (Context.SiteUsers.Where(x => x.UserName == User.Identity.Name).FirstOrDefault<SiteUser>()).UserID; //check if track exists var track = Context.Tracks.Where(x => x.TrackID == id).FirstOrDefault<Track>(); if (track == null) return HttpNotFound(); //check if track is shared or not and privacy of track is registered user && public.. var sharedTrack = Context.UserTrackShares .Where(x => x.TrackID == id && (x.SharingType.SharingTypeDetail == "Users Only" || x.SharingType.SharingTypeDetail == "Public")) .FirstOrDefault<UserTrackShare>(); if (sharedTrack == null) return HttpNotFound(); //check if track is already liked by the current user var liked = Context.UserTrackShareLikes .Where(x => x.UserTrackShareID == sharedTrack.UserTrackSharedID && x.LikedBy == userID) .FirstOrDefault<UserTrackShareLike>(); if (liked != null) { return new JsonResult { Data = new { code = "error", message = "You already liked this song" }, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; } else { Context.UserTrackShareLikes.Add(new UserTrackShareLike { UserTrackShareID = sharedTrack.UserTrackSharedID, LikedBy = userID }); Context.SaveChanges(); return new JsonResult { Data = new { code = "success", likes = track.UserTrackShares.Select(x => x.UserTrackShareLikes.Count()).ToList()[0] }, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; } }
public ActionResult ResetPassword(string userId, UsersResetPasswordViewModel model) { try { Guid guid = Guid.Parse(userId); using (var Context = new ProjectDBEntities()) { var User = Context.SiteUsers.Where(sxu => sxu.UserID == guid).FirstOrDefault<SiteUser>(); if (User != null) { if (Mailer.NotifyNewPassword(userId, model.UserPass)) { User.UserPass = Hashing.CreateHash(model.UserPass); Context.SaveChanges(); } else { model.UserID = guid; ModelState.AddModelError("Email", "SMTP Not working.."); return View(model); } } else return HttpNotFound(); } return RedirectToAction("All"); } catch(Exception) { return HttpNotFound(); } }
public ActionResult ChangePassword(ChangePasswordViewModel model) { if (!ModelState.IsValid) return View(model); using (var Context = new ProjectDBEntities()) { var oldPassword = Hashing.CreateHash(model.OldPassword); var user = Context.SiteUsers .Where(x => x.UserName == User.Identity.Name && x.UserPass == oldPassword) .FirstOrDefault<SiteUser>(); if (user == null) { ViewBag.Message = "Old password doesn't match.."; return View(model); } user.UserPass = Hashing.CreateHash(model.NewPassword); Context.SaveChanges(); ViewBag.Message = "Password Changed Successfully.."; return View(new ChangePasswordViewModel()); } }
public ActionResult Form(PostForm model) { model.IsNew = model.NewsID == null; if (!ModelState.IsValid) return View(model); using (var Context = new ProjectDBEntities()) { var adminGuid = (Context.Administrators.Where(ax => ax.AdminUserName == User.Identity.Name).FirstOrDefault<Administrator>()).AdminID; if (model.IsNew) { News news = new News() { NewsTitle = model.Title, NewsSlug = model.Slug, NewsContents = model.Contents, PostedBy = adminGuid, PostedDate = DateTime.UtcNow }; Context.News.Add(news); } else { var news = Context.News.Where(nx => nx.NewsID == model.NewsID).FirstOrDefault<News>(); news.NewsTitle = model.Title; news.NewsSlug = model.Slug; news.NewsContents = model.Contents; news.PostedDate = DateTime.UtcNow; news.PostedBy = adminGuid; } Context.SaveChanges(); } return RedirectToAction("Index"); }
public ActionResult AddSongsInAlbum(AddSongsInAlbumViewModel model) { var Context = new ProjectDBEntities(); var userID = (Context.SiteUsers.Where(ax => ax.UserName == User.Identity.Name).FirstOrDefault<SiteUser>()).UserID; ViewBag.Albums = Context.Albums .Where(x => x.UserID == userID && x.IsActive == true && x.UserID == userID) .ToList(); ViewBag.SharingTypes = Context.SharingTypes.ToList(); if (!ModelState.IsValid) return View(model); var selectedGeneres = model.Generes.Where(x => x.IsChecked).ToList(); var album = Context.Albums .Where(x => x.AlbumID == model.AlbumID && x.AlbumTitle != "Default") .FirstOrDefault<Album>(); if (album == null) ModelState.AddModelError("Album", "Album ID is not Correct.."); if (!VerifyMP3Extension(model.Track.FileName)) ModelState.AddModelError("Track", "Only \".mp3\" file is allowed for Track.."); if (!VerifyPictureExtension(model.TrackCover.FileName)) ModelState.AddModelError("TrackCover", "Only \".jpg\" & \".png\" files are allowed for cover.."); if (!ModelState.IsValid) return View(model); var trackName = Guid.NewGuid() + Path.GetExtension(model.Track.FileName); var trackUploadPath = Server.MapPath("~/users/tracks"); var trackPathForDb = "/users/tracks/" + trackName; model.Track.SaveAs(Path.Combine(trackUploadPath, trackName)); var trackCoverName = Guid.NewGuid() + Path.GetExtension(model.TrackCover.FileName); var trackCoverUploadPath = Server.MapPath("~/users/tracks/images"); model.TrackCover.SaveAs(Path.Combine(trackCoverUploadPath, trackCoverName)); var trackCoverPathForDb = "/users/tracks/images/" + trackCoverName; Track track = new Track() { TrackTitle = model.Title, AlbumID = model.AlbumID, TrackPath = trackPathForDb, TrackCoverPath = trackCoverPathForDb, DateAdded = DateTime.UtcNow, IsActive = true, UserID = userID }; Context.Tracks.Add(track); Context.SaveChanges(); foreach (var item in selectedGeneres) { Context.TrackGeneres.Add(new TrackGenere { TrackId = track.TrackID, GenereID = (int)item.ID }); } Context.SaveChanges(); Context.UserTrackShares.Add(new UserTrackShare { TrackID = track.TrackID, SharingTypeID = model.SharingTypeID, SharingDate = DateTime.UtcNow }); Context.SaveChanges(); ViewBag.Message = "Track added.."; return View(new AddSongsInAlbumViewModel { Generes = Context.Generes .Where(x => x.IsActive == true) .Select(genere => new GenereCheckBox { ID = genere.GenereID, Name = genere.GenereDetail, IsChecked = false }).ToList() }); }
public ActionResult ForgotPassword(AdminForgotPasswordViewModel model) { if(ModelState.IsValid) { using(var Context = new ProjectDBEntities()) { var admin = Context.Administrators.Where(x => x.AdminEmail == model.Email).FirstOrDefault<Administrator>(); if(admin==null) { ViewBag.Message = "No Such User.."; return View(model); } string generatedPassword = Hashing.GeneratePassword(); if (Mailer.ForgotPasswordAdmin(admin.AdminUserName, generatedPassword)) { admin.AdminPassword = Hashing.CreateHash(generatedPassword); Context.SaveChanges(); ViewBag.Message = "New Password has been sent to admin email.."; return View(new AdminForgotPasswordViewModel()); } else { ViewBag.Message = "SMTP is not working.. try later.."; return View(new AdminForgotPasswordViewModel()); } } } return View(model); }
public ActionResult RestoreSong(Guid trackId) { using (var Context = new ProjectDBEntities()) { var guid = (Context.SiteUsers.Where(sxu => sxu.UserName == User.Identity.Name).FirstOrDefault<SiteUser>()).UserID; var track = Context.Tracks.Where(nx => nx.TrackID == trackId && nx.UserID == guid).FirstOrDefault<Track>(); if (track == null) return HttpNotFound(); track.IsActive = true; Context.SaveChanges(); return RedirectToAction("ListSongs"); } }
public ActionResult DeleteSong(Guid trackId) { using (var Context = new ProjectDBEntities()) { var guid = (Context.SiteUsers.Where(sxu => sxu.UserName == User.Identity.Name).FirstOrDefault<SiteUser>()).UserID; var track = Context.Tracks.Find(trackId); if (track == null) return HttpNotFound(); else { var trackShare = Context.UserTrackShares .Where(x => x.TrackID == track.TrackID) .FirstOrDefault<UserTrackShare>(); Context.UserTrackShares.Remove(trackShare); Context.Tracks.Remove(track); Context.SaveChanges(); RemoveOld(track.TrackCoverPath); RemoveOld(track.TrackPath); } return RedirectToAction("ListSongs"); } }
public ActionResult SignUp(SignUpViewModel model) { if (User.Identity.IsAuthenticated && User.IsInRole("user")) return RedirectToRoute(new { controller = "Home", action = "Index" }); if (ModelState.IsValid) { using (ProjectDBEntities Context = new ProjectDBEntities()) { var Userx = Context.SiteUsers.Where(ux => ux.UserName == model.Username).FirstOrDefault<SiteUser>(); var UserStatus = Context.UserStatus.Where(usx => usx.UserStatusDetail == "Active").FirstOrDefault<UserStatu>(); if (Userx != null) { ViewBag.Message = "Username is already taken.."; return View(new SignUpViewModel()); } var userWithEmail = Context.SiteUsers.Where(x => x.UserEmail == model.UserEmail).FirstOrDefault<SiteUser>(); if(userWithEmail!=null) { ViewBag.Message = "There is already a user with same Email.."; return View(new SignUpViewModel()); } SiteUser SU = new SiteUser() { UserFirstName = model.UserFirstName, UserLastName = model.UserLastName, UserName = model.Username, UserEmail = model.UserEmail, DateCreated = DateTime.Now, UserStatusID = UserStatus.UserStatusID }; //Validating Middle Name if (model.UserMiddleName != null) SU.UserMiddleName = model.UserMiddleName; //Hashing Password SU.UserPass = Hashing.CreateHash(model.UserPass); Context.SiteUsers.Add(SU); if (Context.SaveChanges() == 1) { ViewBag.Message = "User Added Successfully"; } else { ViewBag.Message = "User Cannot Be Added"; } return View(new SignUpViewModel()); } } else return View(new SignUpViewModel()); }
public ActionResult ForgotPassword(ForgotPasswordViewModel model) { var attempts = Convert.ToInt32(Session["fpattempts"]); attempts++; Session["fpattempts"] = attempts; if (attempts >= 3) { ModelState.AddModelError("UserName", "You have exceeded the maximum valid attempts.."); return View(model); } if (!ModelState.IsValid) return View(model); using (var Context = new ProjectDBEntities()) { var user = Context.SiteUsers.Where(sxu => sxu.UserName == model.UserName).FirstOrDefault<SiteUser>(); if (user == null) { ViewBag.Message = "Are you sure about username..??"; return View(model); } if (user != null) { var newPassword = Hashing.GeneratePassword(); if (Mailer.ForgotPassword(user.UserName, newPassword)) { user.UserPass = Hashing.CreateHash(newPassword); Context.SaveChanges(); Session["fpattempts"] = null; } else { ModelState.AddModelError("Email", "SMTP Not working.. Try later or Contact Admin.."); return View(model); } } } return View(); }
public ActionResult RestoreAlbum(Guid albumId) { using (var Context = new ProjectDBEntities()) { var guid = (Context.SiteUsers.Where(x => x.UserName == User.Identity.Name).FirstOrDefault<SiteUser>()).UserID; var album = Context.Albums.Where(x => x.AlbumID == albumId && x.UserID == guid).FirstOrDefault<Album>(); if (album == null) return HttpNotFound(); album.IsActive = true; Context.SaveChanges(); return RedirectToAction("ListAlbums"); } }
public ActionResult DeleteAlbum(Guid albumId) { using (var Context = new ProjectDBEntities()) { var guid = (Context.SiteUsers .Where(sxu => sxu.UserName == User.Identity.Name) .FirstOrDefault<SiteUser>() ).UserID; var album = Context.Albums .Where(nx => nx.AlbumID == albumId && nx.UserID == guid && nx.AlbumTitle != "Default") .FirstOrDefault<Album>(); if (album == null) return HttpNotFound(); else { Context.Albums.Remove(album); Context.SaveChanges(); RemoveOld(album.AlbumCoverPath); } return RedirectToAction("ListAlbums"); } }
public ActionResult Restore(int genereId) { using (var Context = new ProjectDBEntities()) { var news = Context.Generes.Where(nx => nx.GenereID == genereId).FirstOrDefault<Genere>(); if (news == null) return HttpNotFound(); news.IsActive = true; Context.SaveChanges(); return RedirectToAction("Index"); } }
public ActionResult SongForm(ShareSongPostForm model) { model.IsNew = model.ID == null; using (var Context = new ProjectDBEntities()) { ViewBag.SharingTypes = Context.SharingTypes.ToList(); 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; var albumID = (Context.Albums.Where(ax => ax.AlbumTitle == "Default").FirstOrDefault<Album>()).AlbumID; if (!Context.SharingTypes.Any(x => x.SharingTypeID == model.SharingTypeID)) ModelState.AddModelError("SharingType", "No Such Sharing Exists.."); if (model.IsNew) { if (model.Track == null) ModelState.AddModelError("Track", "Track File is required.."); if (model.TrackCover == null) ModelState.AddModelError("TrackCover", "Track Cover is required.."); if (!ModelState.IsValid) return View(model); if (!VerifyMP3Extension(model.Track.FileName)) ModelState.AddModelError("Track", "Only \".mp3\" file is allowed for Track.."); if (!VerifyPictureExtension(model.TrackCover.FileName)) ModelState.AddModelError("TrackCover", "Only \".jpg\" & \".png\" files are allowed for cover.."); if (!ModelState.IsValid) return View(model); var trackName = Guid.NewGuid() + Path.GetExtension(model.Track.FileName); var trackUploadPath = Server.MapPath("~/users/tracks"); var trackPathForDb = "/users/tracks/" + trackName; model.Track.SaveAs(Path.Combine(trackUploadPath, trackName)); var trackCoverName = Guid.NewGuid() + Path.GetExtension(model.TrackCover.FileName); var trackCoverUploadPath = Server.MapPath("~/users/tracks/images"); model.TrackCover.SaveAs(Path.Combine(trackCoverUploadPath, trackCoverName)); var trackCoverPathForDb = "/users/tracks/images/" + trackCoverName; Track track = new Track() { TrackTitle = model.Title, AlbumID = albumID, TrackPath = trackPathForDb, TrackCoverPath = trackCoverPathForDb, DateAdded = DateTime.UtcNow, IsActive = true, UserID = userGuid }; Context.Tracks.Add(track); Context.SaveChanges(); foreach (var item in selectedGeneres) { Context.TrackGeneres.Add(new TrackGenere { TrackId = track.TrackID, GenereID = (int)item.ID }); } Context.SaveChanges(); Context.UserTrackShares.Add(new UserTrackShare { TrackID = track.TrackID, SharingTypeID = model.SharingTypeID, SharingDate = DateTime.UtcNow }); Context.SaveChanges(); } else { var track = Context.Tracks.Where(tx => tx.TrackID == model.ID).FirstOrDefault<Track>(); if (track == null) return HttpNotFound(); var trackShare = Context.UserTrackShares .Where(x => x.UserTrackSharedID == model.TrackShareID) .FirstOrDefault<UserTrackShare>(); if (trackShare == null) return HttpNotFound(); string trackPathForDb = null; string oldTrack = null; if (model.Track != null) { if (!VerifyMP3Extension(model.Track.FileName)) ModelState.AddModelError("Track", "Only \".mp3\" file is allowed for Track.."); if (!ModelState.IsValid) return View(model); oldTrack = track.TrackPath; var trackName = Guid.NewGuid() + Path.GetExtension(model.Track.FileName); var trackUploadPath = Server.MapPath("~/users/tracks"); trackPathForDb = "/users/tracks/" + trackName; model.Track.SaveAs(Path.Combine(trackUploadPath, trackName)); } else trackPathForDb = track.TrackPath; string trackCoverPathForDb = null; string oldCover = null; if (model.TrackCover != null) { if (!VerifyPictureExtension(model.TrackCover.FileName)) ModelState.AddModelError("TrackCover", "Only \".jpg\" & \".png\" files are allowed for cover.."); if (!ModelState.IsValid) return View(model); oldCover = track.TrackCoverPath; var trackCoverName = Guid.NewGuid() + Path.GetExtension(model.TrackCover.FileName); var trackCoverUploadPath = Server.MapPath("~/users/tracks/images"); model.TrackCover.SaveAs(Path.Combine(trackCoverUploadPath, trackCoverName)); trackCoverPathForDb = "/users/tracks/images/" + trackCoverName; RemoveOld(track.TrackCoverPath); } else trackCoverPathForDb = track.TrackCoverPath; if (!ModelState.IsValid) return View(model); track.TrackTitle = model.Title; track.AlbumID = (Guid)model.AlbumID; track.TrackPath = trackPathForDb; track.TrackCoverPath = trackCoverPathForDb; track.DateAdded = DateTime.UtcNow; track.IsActive = model.IsActive; track.UserID = userGuid; trackShare.SharingTypeID = model.SharingTypeID; foreach (var item in Context.TrackGeneres.Where(x => x.TrackId == track.TrackID).ToList()) { Context.TrackGeneres.Remove(item); } foreach (var item in selectedGeneres) { Context.TrackGeneres.Add(new TrackGenere { TrackId = track.TrackID, GenereID = (int)item.ID }); } Context.SaveChanges(); if (oldTrack != null) RemoveOld(oldTrack); if (oldCover != null) RemoveOld(oldCover); } } return RedirectToAction("ListSongs"); }
public ActionResult Restore(int newsId) { using (var Context = new ProjectDBEntities()) { var news = Context.News.Where(nx => nx.NewsID == newsId).FirstOrDefault<News>(); if (news == null) return HttpNotFound(); news.DeleteDate = null; Context.SaveChanges(); return RedirectToAction("Index"); } }
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"); }