public IActionResult EditActors(int id, SeriesViewViewModel model) { Series series = _database.Series.FirstOrDefault(a => a.Id == id); List <SeriesCrewMember> ActorsFromDatabase = _database.SeriesCrewMembers.Where(a => a.SeriesId == id && a.MemberRole == SeriesCrewMember.Role.Actor).ToList(); _database.SeriesCrewMembers.RemoveRange(ActorsFromDatabase); List <SeriesCrewMember> BothFromDatabase = _database.SeriesCrewMembers.Where(a => a.SeriesId == id && a.MemberRole == SeriesCrewMember.Role.Both).ToList(); foreach (var both in BothFromDatabase) { both.MemberRole = SeriesCrewMember.Role.Director; } _database.SaveChanges(); if (model.ActorsString != null) { string[] actors = model.ActorsString.Split(", "); foreach (var actorString in actors) { CrewMember crewMember = new CrewMember(); if (!_database.CrewMembers.Any(a => a.Name == actorString)) { crewMember.Name = actorString; _database.CrewMembers.Add(crewMember); _database.SaveChanges(); } else { crewMember = _database.CrewMembers.FirstOrDefault(a => a.Name == actorString); } _database.SaveChanges(); SeriesCrewMember seriesCrewMember = new SeriesCrewMember(); if (!_database.SeriesCrewMembers.Any(a => a.SeriesId == series.Id && a.CrewMemberId == crewMember.Id)) { seriesCrewMember.SeriesId = series.Id; seriesCrewMember.CrewMemberId = crewMember.Id; seriesCrewMember.MemberRole = SeriesCrewMember.Role.Actor; } else { seriesCrewMember.MemberRole = SeriesCrewMember.Role.Both; } _database.SeriesCrewMembers.Add(seriesCrewMember); } } _database.SaveChanges(); return(RedirectToAction("View", "Series", new { Id = id })); }
public async Task <IActionResult> Create(SeriesCreateViewModel model) { if (!TryValidateModel(model)) { return(View(model)); } Series series = new Series() { Title = model.Title, Description = model.Description, }; using (var memoryStream = new MemoryStream()) { try { await model.Photo.CopyToAsync(memoryStream); } catch { } series.Photo = memoryStream.ToArray(); _database.Series.Add(series); _database.SaveChanges(); } if (model.Genre != null) { string[] genres = model.Genre.Split(","); foreach (var genre in genres) { MovieGenre movieGenre = _database.MovieGenres.FirstOrDefault(a => a.Name == genre); _database.MovieGenreSeries.Add(new MovieGenreSeries { MovieGenreId = movieGenre.Id, SerieId = series.Id }); } } _database.SaveChanges(); if (model.Actors != null) { string[] actors = model.Actors.Split(","); foreach (var Actor in actors) { CrewMember crewMember = new CrewMember(); if (!_database.CrewMembers.Any(a => a.Name == Actor)) { crewMember.Name = Actor; _database.CrewMembers.Add(crewMember); _database.SaveChanges(); } else { crewMember = _database.CrewMembers.FirstOrDefault(a => a.Name == Actor); } _database.SaveChanges(); SeriesCrewMember seriesCrewMember = new SeriesCrewMember() { SeriesId = series.Id, CrewMemberId = crewMember.Id, MemberRole = SeriesCrewMember.Role.Actor }; _database.SeriesCrewMembers.Add(seriesCrewMember); } } _database.SaveChanges(); if (model.Directors != null) { string[] directors = model.Directors.Split(","); foreach (var Director in directors) { CrewMember crewMember = new CrewMember(); if (!_database.CrewMembers.Any(a => a.Name == Director)) { crewMember.Name = Director; _database.CrewMembers.Add(crewMember); _database.SaveChanges(); } else { crewMember = _database.CrewMembers.FirstOrDefault(a => a.Name == Director); } SeriesCrewMember seriesCrewMember = new SeriesCrewMember(); if (!_database.SeriesCrewMembers.Any(a => a.SeriesId == series.Id && a.CrewMemberId == crewMember.Id)) { seriesCrewMember.SeriesId = series.Id; seriesCrewMember.CrewMemberId = crewMember.Id; seriesCrewMember.MemberRole = SeriesCrewMember.Role.Director; _database.SeriesCrewMembers.Add(seriesCrewMember); } else { seriesCrewMember = _database.SeriesCrewMembers.First(a => a.SeriesId == series.Id && a.CrewMemberId == crewMember.Id); seriesCrewMember.MemberRole = SeriesCrewMember.Role.Both; } } } _database.SaveChanges(); if (model.Episodes[0].Title != null) { series.ReleaseDate = model.Episodes[0].ReleaseDate; Season season = new Season { SeriesId = series.Id, SeasonNumber = 1 }; _database.Seasons.Add(season); _database.SaveChanges(); foreach (var episodeItem in model.Episodes) { Episode episode = new Episode { Title = episodeItem.Title, Description = episodeItem.Description, ReleaseDate = episodeItem.ReleaseDate, SeasonId = season.Id, PlayTime = new TimeSpan(episodeItem.PlayTimeHours, episodeItem.PlayTimeMinutes, 0) }; _database.Episodes.Add(episode); _database.SaveChanges(); } } return(RedirectToAction("Index")); }