public async Task <IActionResult> Create([Bind("SubgenreName")] SubgenreModel subgenreModel) { if (ModelState.IsValid) { if (String.IsNullOrWhiteSpace(subgenreModel.SubgenreName)) { TempData["message"] = "You must enter a subgenre. Try again."; return(View()); } TextInfo toTitleCase = new CultureInfo("en-US", false).TextInfo; subgenreModel.SubgenreName = subgenreModel.SubgenreName.ToLower(); subgenreModel.SubgenreName = toTitleCase.ToTitleCase(subgenreModel.SubgenreName); var subgenreNames = _context.Subgenres; foreach (var s in subgenreNames) { if (subgenreModel.SubgenreName.ToLower() == s.SubgenreName.ToLower()) { TempData["message"] = "That subgenre already exists."; return(View()); } } _context.Add(subgenreModel); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(subgenreModel)); }
public SubgenreModel CreateUnknownSubgenre() { SubgenreModel unknown = new SubgenreModel() { SubgenreName = "Unknown" }; _context.Add(unknown); _context.SaveChanges(); return(unknown); }
public async Task <IActionResult> Edit(int id, [Bind("SubgenreName")] SubgenreModel subgenreModel) { if (String.IsNullOrWhiteSpace(subgenreModel.SubgenreName)) { TempData["messageSubName"] = "You must enter a subgenre. Try again."; return(View()); } var subgenreToUpdate = await _context.Subgenres .FirstOrDefaultAsync(c => c.SubgenreID == id); TextInfo toTitleCase = new CultureInfo("en-US", false).TextInfo; subgenreModel.SubgenreName = toTitleCase.ToTitleCase(subgenreModel.SubgenreName); var subgenreNames = _context.Subgenres; foreach (var s in subgenreNames) { if (subgenreModel.SubgenreName.ToLower() == s.SubgenreName.ToLower()) { TempData["messageExists"] = "That subgenre already exists."; return(View()); } } if (await TryUpdateModelAsync <SubgenreModel>(subgenreToUpdate, "", c => c.SubgenreID, c => c.SubgenreName)) { try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { ModelState.AddModelError("", "Unable To Save Changes"); } return(RedirectToAction(nameof(Index))); } return(View(subgenreModel)); }
public async Task <IActionResult> Edit(int id, [Bind("ArtistName,CountryOfOrigin,Subgenre")] ArtistModel artistModel) { if (ModelState.IsValid) { try { var artistToUpdate = await _context.Artists .Include(a => a.Albums) .ThenInclude(t => t.Tracks) .Include(s => s.Subgenre) .AsNoTracking() .FirstOrDefaultAsync(c => c.ArtistID == id); if (String.IsNullOrWhiteSpace(artistModel.ArtistName)) { TempData["messageArtist"] = "You must enter an artist. Try again."; return(View()); } if (String.IsNullOrWhiteSpace(artistModel.CountryOfOrigin)) { artistModel.CountryOfOrigin = "Unknown"; } if (String.IsNullOrWhiteSpace(artistModel.Subgenre.SubgenreName)) { artistModel.Subgenre.SubgenreName = "Unknown"; } TextInfo caseSwitch = new CultureInfo("en-US", false).TextInfo; artistModel.ArtistName = artistModel.ArtistName.ToLower(); artistModel.ArtistName = caseSwitch.ToTitleCase(artistModel.ArtistName); artistModel.Subgenre.SubgenreName = artistModel.Subgenre.SubgenreName.ToLower(); artistModel.Subgenre.SubgenreName = caseSwitch.ToTitleCase(artistModel.Subgenre.SubgenreName); artistModel.CountryOfOrigin = artistModel.CountryOfOrigin.ToLower(); artistModel.CountryOfOrigin = caseSwitch.ToTitleCase(artistModel.CountryOfOrigin); string[] ukArray = new string[] { "uk", "united kingdom", "britain", "great britain", "england", "scotland", "wales", "northern ireland" }; string[] usaArray = new string[] { "usa", "us", "america", "united states", "united states of america", "u.s", "u.s.", "u.s.a", "u.s.a.", "us of a", "'murica", "murica", "merica", "'merica" }; foreach (var u in ukArray) { if (artistModel.CountryOfOrigin.ToLower() == u) { artistModel.CountryOfOrigin = "UK"; } } foreach (var u in usaArray) { if (artistModel.CountryOfOrigin.ToLower() == u) { artistModel.CountryOfOrigin = "USA"; } } if (artistModel.ArtistName.ToLower() != artistToUpdate.ArtistName.ToLower()) { artistModel.ArtistID = id; } if (artistModel.CountryOfOrigin.ToLower() != artistToUpdate.CountryOfOrigin.ToLower()) { artistToUpdate.CountryOfOrigin = artistModel.CountryOfOrigin; artistModel.ArtistID = id; } if (artistModel.ArtistName.ToLower() == artistToUpdate.ArtistName.ToLower() && artistModel.CountryOfOrigin.ToLower() == artistToUpdate.CountryOfOrigin.ToLower() && artistModel.Subgenre.SubgenreName.ToLower() == artistToUpdate.Subgenre.SubgenreName.ToLower()) { artistModel.ArtistID = id; } var duplicateCheck = _context.Artists .Include(s => s.Subgenre) .Include(a => a.Albums) .ThenInclude(t => t.Tracks) .AsNoTracking(); foreach (var d in duplicateCheck) { if (artistModel.ArtistName.ToLower() == d.ArtistName.ToLower()) { if (artistModel.ArtistName.ToLower() != artistToUpdate.ArtistName.ToLower()) { TempData["messageExists"] = "That artist already exists."; return(View()); } } } var subgenreCheck = _context.Subgenres .AsNoTracking(); foreach (var s in subgenreCheck) { if (artistModel.Subgenre.SubgenreName == s.SubgenreName) { artistModel.ArtistID = id; artistModel.Subgenre.SubgenreID = s.SubgenreID; } } if (!subgenreCheck.Any(s => s.SubgenreName == artistModel.Subgenre.SubgenreName)) { artistModel.ArtistID = id; SubgenreModel newSubgenre = new SubgenreModel(); } _context.Update(artistModel); await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (!ArtistModelExists(artistModel.ArtistID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(artistModel)); }
public async Task <IActionResult> Create([Bind("ArtistName,CountryOfOrigin,Subgenre")] ArtistModel artistModel) { if (ModelState.IsValid) { if (String.IsNullOrWhiteSpace(artistModel.ArtistName)) { TempData["messageArtist"] = "You must enter an artist name. Try again."; return(View()); } if (String.IsNullOrWhiteSpace(artistModel.CountryOfOrigin)) { artistModel.CountryOfOrigin = "Unknown"; } if (String.IsNullOrWhiteSpace(artistModel.Subgenre.SubgenreName)) { artistModel.Subgenre.SubgenreName = "Unknown"; } TextInfo caseSwitch = new CultureInfo("en-US", false).TextInfo; artistModel.ArtistName = artistModel.ArtistName.ToLower(); artistModel.ArtistName = caseSwitch.ToTitleCase(artistModel.ArtistName); artistModel.Subgenre.SubgenreName = artistModel.Subgenre.SubgenreName.ToLower(); artistModel.Subgenre.SubgenreName = caseSwitch.ToTitleCase(artistModel.Subgenre.SubgenreName); artistModel.CountryOfOrigin = artistModel.CountryOfOrigin.ToLower(); artistModel.CountryOfOrigin = caseSwitch.ToTitleCase(artistModel.CountryOfOrigin); string[] ukArray = new string[] { "uk", "united kingdom", "britain", "great britain", "england", "scotland", "wales", "northern ireland" }; string[] usaArray = new string[] { "usa", "us", "america", "united states", "united states of america", "u.s", "u.s.", "u.s.a", "u.s.a.", "us of a", "'murica", "murica", "merica", "'merica" }; foreach (var u in ukArray) { if (artistModel.CountryOfOrigin.ToLower() == u) { artistModel.CountryOfOrigin = "UK"; } } foreach (var u in usaArray) { if (artistModel.CountryOfOrigin.ToLower() == u) { artistModel.CountryOfOrigin = "USA"; } } SubgenreModel subgenre = await _context.Subgenres.SingleOrDefaultAsync(s => s.SubgenreName == artistModel.Subgenre.SubgenreName); if (subgenre == null) { subgenre = new SubgenreModel() { SubgenreName = artistModel.Subgenre.SubgenreName }; } ArtistModel newArtist = new ArtistModel() { ArtistName = artistModel.ArtistName, CountryOfOrigin = artistModel.CountryOfOrigin, Subgenre = subgenre }; var subgenreNames = _context.Subgenres; foreach (var s in subgenreNames) { if (artistModel.Subgenre.SubgenreName.ToLower() == s.SubgenreName.ToLower()) { artistModel.SubgenreID = s.SubgenreID; } } var artistNames = _context.Artists; foreach (var a in artistNames) { if (artistModel.ArtistName.ToLower() == a.ArtistName.ToLower()) { TempData["message"] = "That artist already exists in the database."; return(View()); } } _context.Add(newArtist); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(artistModel)); }