public ActionResult Edit(int id) { var release = _context.Releases.SingleOrDefault(r => r.ReleaseId == id); if (release == null) { return(HttpNotFound()); } var artists = _context.Artists.ToList(); var releaseTypes = _context.ReleaseTypes.ToList(); var songs = _context.Songs.Select(a => new { SongId = a.SongId, Name = a.Name }).ToList(); var defaultSelected = _context.Songs.Where(x => x.Releases.Any(y => y.ReleaseId == id)); int[] songsId = new int[defaultSelected.Count()]; int i = 0; foreach (var a in defaultSelected) { songsId[i] = a.SongId; i++; } if (release.ImageUrl == null) { release.ImageUrl = @"~/Uploads/ReleaseImages/default.png"; } var viewModel = new ReleaseFormViewModel { Release = release, ReleaseTypes = releaseTypes, Artists = artists, Songs = new MultiSelectList(songs, "SongId", "Name"), SongId = songsId }; return(View("ReleaseForm", viewModel)); }
public ActionResult New() { var artists = _context.Artists.ToList(); var releaseTypes = _context.ReleaseTypes.ToList(); var songs = _context.Songs.Select(a => new { SongId = a.SongId, Name = a.Name }).ToList(); var release = new Release(); release.ImageUrl = @"~/Uploads/ReleaseImages/default.png"; var viewModel = new ReleaseFormViewModel { Release = release, Artists = artists, ReleaseTypes = releaseTypes, Songs = new MultiSelectList(songs, "SongId", "Name"), }; return(View("ReleaseForm", viewModel)); }
public ActionResult Save(Release release, HttpPostedFileBase file, int[] SongId) { if (release.ReleaseId == 0) { if (ModelState.IsValid) { if (file != null) { var fileName = Path.GetFileName(file.FileName); var directoryToSave = Server.MapPath(Url.Content("~/Uploads/ReleaseImages")); var pathToSave = Path.Combine(directoryToSave, fileName); file.SaveAs(pathToSave); release.ImageUrl = "~/Uploads/ReleaseImages/" + fileName; } _context.Releases.Add(release); InsertManyToMany(release, SongId); return(RedirectToAction("Index")); } var artists = _context.Artists.ToList(); var releaseTypes = _context.ReleaseTypes.ToList(); var songs = _context.Songs.Select(a => new { SongId = a.SongId, Name = a.Name }).ToList(); if (release.ImageUrl == null) { release.ImageUrl = @"~/Uploads/ReleaseImages/default.png"; } var viewModel = new ReleaseFormViewModel { Release = release, Artists = artists, ReleaseTypes = releaseTypes, Songs = new MultiSelectList(songs, "SongId", "Name"), }; return(View("ReleaseForm", viewModel)); } else { var currentRelease = _context.Releases.SingleOrDefault(r => r.ReleaseId == release.ReleaseId); if (currentRelease == null) { return(HttpNotFound()); } if (ModelState.IsValid) { if (file != null) { var fileName = Path.GetFileName(file.FileName); var directoryToSave = Server.MapPath(Url.Content("~/Uploads/ReleaseImages")); var pathToSave = Path.Combine(directoryToSave, fileName); file.SaveAs(pathToSave); currentRelease.ImageUrl = "~/Uploads/ReleaseImages/" + fileName; } currentRelease.Name = release.Name; currentRelease.ReleaseTypeId = release.ReleaseTypeId; currentRelease.ArtistID = release.ArtistID; RemoveManyToMany(currentRelease); InsertManyToMany(currentRelease, SongId); return(RedirectToAction("Index")); } var artists = _context.Artists.ToList(); var releaseTypes = _context.ReleaseTypes.ToList(); var songs = _context.Songs.Select(a => new { SongId = a.SongId, Name = a.Name }).ToList(); if (release.ImageUrl == null) { currentRelease.ImageUrl = @"~/Uploads/ReleaseImages/default.png"; } var viewModel = new ReleaseFormViewModel { Release = currentRelease, ReleaseTypes = releaseTypes, Artists = artists, Songs = new MultiSelectList(songs, "SongId", "Name"), SongId = SongId }; return(View("ReleaseForm", viewModel)); } }