public async Task <bool> AddRoleToTVShowSeasonAsync(AddSeasonRoleInputModel input) { if (!await dbContext.Seasons.AnyAsync(season => season.Id == input.SeasonId)) { return(false); } if (!await dbContext.Artists.AnyAsync(artist => artist.FullName == input.Artist)) { return(false); } var seasonFromDb = await dbContext.Seasons.SingleOrDefaultAsync(season => season.Id == input.SeasonId); var artistFromDb = await dbContext.Artists.SingleOrDefaultAsync(artist => artist.FullName == input.Artist); if (await dbContext.SeasonRoles.AnyAsync(sr => sr.ArtistId == artistFromDb.Id && sr.SeasonId == seasonFromDb.Id)) { return(false); } var seasonRoleForDb = mapper.Map <AddSeasonRoleInputModel, SeasonRole>(input); seasonRoleForDb.Season = seasonFromDb; seasonRoleForDb.Artist = artistFromDb; await dbContext.SeasonRoles.AddAsync(seasonRoleForDb); await dbContext.SaveChangesAsync(); return(true); }
public async Task <IActionResult> AddRole(AddSeasonRoleInputModel input) { if (!ModelState.IsValid) { return(View(input)); } if (!await tvShowService.AddRoleToTVShowSeasonAsync(input)) { return(View(input)); } return(Redirect(redirectTVShowsAllAndOrder)); }