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(",&nbsp;");

                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 }));
        }
Пример #2
0
        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"));
        }