예제 #1
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,FilmId,GenreId")] FilmGenre filmGenre)
        {
            if (id != filmGenre.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(filmGenre);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!FilmGenreExists(filmGenre.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["FilmId"]  = new SelectList(_context.Film, "FilmId", "Name", filmGenre.FilmId);
            ViewData["GenreId"] = new SelectList(_context.Genre, "GenreId", "Name", filmGenre.GenreId);
            return(View(filmGenre));
        }
        public void LoadAdd(int film_id)
        {
            var Function           = new Functions();
            DataRowCollection data = Functions.Select("SELECT * FROM Genres");

            foreach (DataRow row in data)
            {
                CustomComboBox item = new CustomComboBox();
                item.Text  = row["naam"].ToString();
                item.Value = Int32.Parse(row["id"].ToString());
                FilmGenre.Items.Add(item);
            }

            FilmAge.Items.Add("0");
            FilmAge.Items.Add("6");
            FilmAge.Items.Add("9");
            FilmAge.Items.Add("12");
            FilmAge.Items.Add("16");
            FilmAge.Items.Add("18");

            if (film_id > 0)
            {
                DataRowCollection film = Functions.Select("SELECT g.naam as GenreNaam, f.naam as FilmNaam, * FROM films f LEFT JOIN Genres g ON f.genre = g.id WHERE f.id= '" + film_id + "'");

                FilmNaam.Text           = film[0]["FilmNaam"].ToString();
                FilmAge.Text            = film[0]["leeftijd"].ToString();
                FilmTime.Text           = film[0]["speel_duur"].ToString();
                FilmTrailer.Text        = film[0]["youtube_code"].ToString();
                FilmDisc.Text           = film[0]["beschrijving"].ToString();
                FilmGenre.Text          = film[0]["GenreNaam"].ToString();
                FilmGenre.SelectedIndex = FilmGenre.FindStringExact(film[0]["GenreNaam"].ToString());
                FilmAge.SelectedIndex   = FilmAge.FindStringExact(film[0]["leeftijd"].ToString());
                FilmAddButton.Text      = "Aanpassen";
            }
        }
예제 #3
0
        public async Task <IActionResult> PutFilmGenre(int id, FilmGenre filmGenre)
        {
            if (id != filmGenre.Id)
            {
                return(BadRequest());
            }
            FilmGenreValid c = new FilmGenreValid(_context, filmGenre);

            if (!c.Valid())
            {
                return(BadRequest("Фільм з таким жанром уже існує"));
            }
            _context.Entry(filmGenre).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!FilmGenreExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
예제 #4
0
        public async Task <IActionResult> Edit(int id, [Bind("GenreID,Genre")] FilmGenre filmGenre)
        {
            if (id != filmGenre.GenreID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(filmGenre);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!FilmGenreExists(filmGenre.GenreID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(filmGenre));
        }
예제 #5
0
        public FilmGenre Create(FilmGenre filmGenre)
        {
            if (filmGenre == null)
            {
                throw new ArgumentNullException("Film must not be null");
            }

            return(db.FilmGenre.Add(filmGenre));
        }
예제 #6
0
 public Film(string name, int year, FilmGenre genre, int age, int lenghtInMinutes, string country)
 {
     Id              = Guid.NewGuid();
     Name            = name;
     Year            = year;
     Genre           = genre;
     Age             = age;
     LenghtInMinutes = lenghtInMinutes;
     Country         = country;
 }
예제 #7
0
        public async Task <IActionResult> Create([Bind("GenreID,Genre")] FilmGenre filmGenre)
        {
            if (ModelState.IsValid)
            {
                _context.Add(filmGenre);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(filmGenre));
        }
예제 #8
0
        //Добавление нового фильма
        public Film AddFilm(Film film)
        {
            var FilmsDBQ = _context.Film;
            var FilmsDB  = FilmsDBQ.ToList();

            //var newFilm = _film.ConvertToFilme();

            if (!FilmsDB.Any(x =>
                             (x.Title == film.Title) &&
                             (x.Countrys.NameOfTheCountry == film.Countrys.NameOfTheCountry) &&
                             (x.Year == film.Year)))
            {
                _context.Film.Add(film);
            }
            _context.SaveChanges();


            #region
            List <FilmActor> filmActor = new List <FilmActor>();

            foreach (var item in film.FilmActor)
            {
                if (!filmActor.Any(x => x.ActorId == item.ActorId))
                {
                    FilmActor temp = new FilmActor()
                    {
                        FilmId = item.FilmId, ActorId = item.ActorId
                    };
                    filmActor.Add(temp);
                }
            }
            _context.SaveChanges();
            #endregion

            #region
            List <FilmGenre> filmGenre = new List <FilmGenre>();

            foreach (var item in film.FilmGenre)
            {
                if (!filmGenre.Any(x => x.GenreId == item.GenreId))
                {
                    FilmGenre temp = new FilmGenre()
                    {
                        FilmId = item.FilmId, GenreId = item.GenreId
                    };
                    filmGenre.Add(temp);
                }
            }
            _context.SaveChanges();
            #endregion
            return(film);
        }
예제 #9
0
        public async Task <IActionResult> Create([Bind("Id,FilmId,GenreId")] FilmGenre filmGenre)
        {
            if (ModelState.IsValid)
            {
                _context.Add(filmGenre);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Index", "FilmGenres"));
            }
            ViewData["FilmId"]  = new SelectList(_context.Film, "FilmId", "Name", filmGenre.FilmId);
            ViewData["GenreId"] = new SelectList(_context.Film, "GenreId", "Name", filmGenre.GenreId);
            return(View(filmGenre));
        }
예제 #10
0
        public async Task <ActionResult <FilmGenre> > PostFilmGenre(FilmGenre filmGenre)
        {
            _context.FilmGenre.Add(filmGenre);
            FilmGenreValid c = new FilmGenreValid(_context, filmGenre);

            if (!c.Valid())
            {
                return(BadRequest("Фільм з таким жанром уже існує"));
            }
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetFilmGenre", new { id = filmGenre.Id }, filmGenre));
        }
예제 #11
0
        private void bntAdd_Click(object sender, EventArgs e)
        {
            FilmCountry filmCon = new FilmCountry();
            FilmGenre   filmGen = new FilmGenre();

            filmCon.FilmID    = FindFilmIdByName();
            filmCon.CountryID = FindCountryIdByName();
            filmGen.FilmID    = FindFilmIdByName();
            filmGen.GenreID   = FindGenreIdByName();
            db.FilmCountries.Add(filmCon);
            db.FilmGenres.Add(filmGen);
            db.SaveChanges();
            MessageBox.Show("successfully sent");
        }
        public async Task <ApiResultLite> CreateAsync(string name)
        {
            FilmGenre filmgenre = new FilmGenre()
            {
                Name = name
            };

            _context.FilmGenre.Add(filmgenre);
            int result = await _context.SaveChangesAsync();

            if (result == 0)
            {
                return(new ApiErrorResultLite("Thêm thất bại"));
            }

            return(new ApiSuccessResultLite("Thêm thành công"));
        }
예제 #13
0
        public bool addRelationGenre(GenreDTO a, int idFilm)
        {
            Genre ac = new Genre
            {
                id   = a.id,
                name = a.Name
            };

            Add <Genre>(ac, d => d.id == ac.id);

            FilmGenre fa = new FilmGenre
            {
                id_film  = idFilm,
                id_genre = ac.id
            };

            return(Add <FilmGenre>(fa, d => d.id_film == idFilm && d.id_genre == ac.id));
        }
        public async Task <ApiResultLite> DeleteAsync(int id)
        {
            FilmGenre filmgenre = await _context.FilmGenre.FindAsync(id);

            if (filmgenre == null)
            {
                return(new ApiErrorResultLite("Không tìm thấy"));
            }
            else
            {
                _context.FilmGenre.Remove(filmgenre);
                if (await _context.SaveChangesAsync() != 0)
                {
                    return(new ApiSuccessResultLite("Xóa thành công"));
                }
                else
                {
                    return(new ApiSuccessResultLite("Không xóa được"));
                }
            }
        }
예제 #15
0
        public FilmGenre Delete(int film_id, int genre_id)
        {
            if (film_id <= 0)
            {
                throw new ArgumentException("Incorrect film id.");
            }

            if (genre_id <= 0)
            {
                throw new ArgumentException("Incorrect film id.");
            }

            FilmGenre filmGanre = db.FilmGenre.FirstOrDefault(x => x.FilmId == film_id && x.GenreId == genre_id);

            if (filmGanre == null)
            {
                return(null);
            }

            return(db.FilmGenre.Remove(filmGanre));
        }
예제 #16
0
        public void CreateFilmGenres(List <string> genreIds, int filmId)
        {
            foreach (string genre in genreIds)
            {
                // Gets a list of existing FilmGenre items to check against.
                IList <FilmGenre> existingFilmGenres = _context.FilmGenres
                                                       .Where(fg => fg.FilmID == filmId && fg.Genre.ID.ToString() == genre)
                                                       .ToList();

                // If no FilmGenres with the current FilmID and GenreID exist, one is created.
                if (existingFilmGenres.Count == 0)
                {
                    FilmGenre newFilmGenre = new FilmGenre
                    {
                        FilmID  = filmId,
                        GenreID = int.Parse(genre)
                    };

                    _context.FilmGenres.Add(newFilmGenre);
                }
            }
        }
        public async Task <ApiResultLite> UpdateAsync(FilmGenreUpdateRequest request)
        {
            FilmGenre filmgenre = await _context.FilmGenre.FindAsync(request.Id);

            if (filmgenre == null)
            {
                return(new ApiErrorResultLite("Không tìm thấy"));
            }
            else
            {
                filmgenre.Id   = request.Id;
                filmgenre.Name = request.Name;
                _context.Update(filmgenre);
                int result = await _context.SaveChangesAsync();

                if (result == 0)
                {
                    return(new ApiErrorResultLite("Cập nhật thất bại"));
                }
                return(new ApiSuccessResultLite("Cập nhật thành công"));
            }
        }
예제 #18
0
        static void AddGenreToFilmById()
        {
            Console.Write("Film: ");
            int film_id = GetId();

            if (film_id < 0)
            {
                return;
            }

            Console.Write("Genre: ");
            int actor_id = GetId();

            if (actor_id < 0)
            {
                return;
            }

            try
            {
                FilmGenre filmGenre = new FilmGenre
                {
                    FilmId  = film_id,
                    Film    = database.films.Get(film_id),
                    GenreId = actor_id,
                    Genre   = database.genres.Get(actor_id),
                };

                database.FilmGenre.Create(filmGenre);
                database.Save();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
예제 #19
0
        public AddOrEditFilm()
        {
            InitializeComponent();
            FilmGenre a = new FilmGenre()
            {
                Name = "horror"
            };
            FilmGenre b = new FilmGenre()
            {
                Name = "cartoon"
            };
            FilmGenre c = new FilmGenre()
            {
                Name = "drama"
            };

            ((App)Application.Current).AllGenres.Add(a);
            ((App)Application.Current).AllGenres.Add(b);

            ActiveFilm = new Film()
            {
                Genres = new List <FilmGenre>(((App)Application.Current).AllGenres)
            };

            ((App)Application.Current).AllGenres.Add(c);

            List <FilmGenre> genres = ((App)Application.Current).AllGenres;


            foreach (var genre in genres)
            {
                filmGenres[genre] = ActiveFilm.Genres.Contains(genre);
            }
            //GD_ValuesGrid.DataContext = ActiveFilm;
            CB_Genre.ItemsSource = filmGenres;
        }
        public async Task <IActionResult> Import(IFormFile fileExcel)
        {
            if (ModelState.IsValid)
            {
                if (fileExcel != null)
                {
                    using var stream = new FileStream(fileExcel.FileName, FileMode.Create);
                    await fileExcel.CopyToAsync(stream);

                    using XLWorkbook workBook = new XLWorkbook(stream, XLEventTracking.Disabled);
                    List <List <string> > Errors = new List <List <string> >();
                    foreach (IXLWorksheet worksheet in workBook.Worksheets)
                    {
                        List <string> ErrorsExcelFile = new List <string>();
                        Genre         newgenre;
                        var           g = (from genre in _context.Genre
                                           where genre.Name.Contains(worksheet.Name)
                                           select genre).ToList();


                        if (g.Count > 0)
                        {
                            newgenre = g[0];
                        }
                        else
                        {
                            newgenre = new Genre
                            {
                                Name        = worksheet.Name,
                                Description = "Завантажено з Excel-файлу "
                            };

                            _context.Genre.Add(newgenre);
                        }
                        await _context.SaveChangesAsync();

                        foreach (IXLRow row in worksheet.RowsUsed().Skip(1))
                        {
                            Film      film      = new Film();
                            FilmGenre filmGenre = new FilmGenre();
                            string    name      = row.Cell(1).Value.ToString();
                            if (name.Length > 50 || name.Length < 3)
                            {
                                string template     = "Назва листа альбому:{0}. Рядок: {1}. {2}";
                                string message      = "Довжина назви фільму <3 або >50 символів.";
                                string ErrorMessage = string.Format(template, worksheet.Name, row, message);
                                ErrorsExcelFile.Add(ErrorMessage);
                                continue;
                            }
                            var f = (from flm in _context.Film where flm.Name.Contains(name) select flm).ToList();
                            if (f.Count() > 0)
                            {
                                film = f[0];
                                var fg = (from flm in _context.FilmGenre where (flm.FilmId == film.FilmId && flm.Genre.Name == newgenre.Name) select flm).ToList();
                                if (fg.Count == 0)
                                {
                                    filmGenre.Film  = film;
                                    filmGenre.Genre = newgenre;
                                    _context.FilmGenre.Add(filmGenre);
                                }
                                await _context.SaveChangesAsync();
                            }
                            else
                            {
                                film.Name = row.Cell(1).Value.ToString();

                                if (row.Cell(6).Value.ToString().Length < 3 || Convert.ToInt32(row.Cell(6).Value) > DateTime.Now.Year || Convert.ToInt32(row.Cell(6).Value) < 1600)
                                {
                                    string template = "Назва листа альбому: {0}. " +
                                                      "Рядок: {1}. " +
                                                      "{2}";
                                    string message      = "  Рік виходу фільму <1600 або > поточного року або поле незаповнено.";
                                    string ErrorMessage = string.Format(template, worksheet.Name, row, message);
                                    ErrorsExcelFile.Add(ErrorMessage);
                                    continue;
                                }
                                film.Release = Convert.ToInt32(row.Cell(6).Value);
                                var match1 = Regex.Match(row.Cell(10).Value.ToString(), @"^(0|[1-9]+[0-9]*)(\.[0-9]+( )?)?( млн| млрд)$");
                                if (!match1.Success || row.Cell(10).Value.ToString().Length < 2)
                                {
                                    string template     = "Назва листа альбому:{0}. Рядок: {1}. {2}";
                                    string message      = " Бюджет фільму-десятковий дріб у неправильному форматі або поле незаповнено.";
                                    string ErrorMessage = string.Format(template, worksheet.Name, row, message);
                                    ErrorsExcelFile.Add(ErrorMessage);
                                    continue;
                                }
                                film.Budget      = row.Cell(10).Value.ToString();
                                film.Description = row.Cell(11).Value.ToString();
                                filmGenre.Film   = film;
                                filmGenre.Genre  = newgenre;

                                string name1 = row.Cell(9).Value.ToString();
                                if (name1.Length > 50 || name1.Length < 3)
                                {
                                    string template     = "Назва листа альбому:{0}. Рядок: {1}. {2}";
                                    string message      = "Довжина назви країни <3 або >50 символів, або поле незаповнено";
                                    string ErrorMessage = string.Format(template, worksheet.Name, row, message);
                                    ErrorsExcelFile.Add(ErrorMessage);
                                    continue;
                                }
                                Country country;
                                var     a = (from aut in _context.Country
                                             where aut.Name.Contains(row.Cell(9).Value.ToString())
                                             select aut).ToList();
                                if (a.Count() > 0)
                                {
                                    country = a[0];
                                }
                                else
                                {
                                    country = new Country
                                    {
                                        Name = row.Cell(9).Value.ToString()
                                    };
                                    _context.Add(country);
                                }
                                film.Country = country;

                                string name2  = row.Cell(2).Value.ToString();
                                var    match5 = Regex.Match(row.Cell(2).Value.ToString(), @"^([A-Z][a-z]+)\ ([A-Z][a-z]+)(\ ?([A-Z][a-z]+)?)|([А-ЯІЇЄЩ][а-яіїщє]+)\ ([А-ЯІЇЄЩ][а-яіїщє]+)(\ ?([А-ЯІЇЄЩ][а-яіїщє]+)?)$");
                                if (!match5.Success || name2.Length > 50 || name2.Length < 3)
                                {
                                    string template     = "Назва листа альбому:{0}. Рядок: {1}. {2}";
                                    string message      = "Довжина імені режисера <3 або >50 символів, поле незаповнено або неправильний формат ";
                                    string ErrorMessage = string.Format(template, worksheet.Name, row, message);
                                    ErrorsExcelFile.Add(ErrorMessage);
                                    continue;
                                }
                                Director director;
                                var      n = (from aut in _context.Director
                                              where aut.Name.Contains(row.Cell(2).Value.ToString())
                                              select aut).ToList();
                                if (n.Count() > 0)
                                {
                                    director = n[0];
                                }
                                else
                                {
                                    director      = new Director();
                                    director.Name = row.Cell(2).Value.ToString();
                                    var match = Regex.Match(row.Cell(3).Value.ToString(), @"ч|ж");
                                    if (!match.Success)
                                    {
                                        string template     = "Назва листа альбому:{0}. Рядок: {1}. {2}";
                                        string message      = "У поле Стать введено не ж(жінка) або ч(чоловік), або поле незаповнено";
                                        string ErrorMessage = string.Format(template, worksheet.Name, row, message);
                                        ErrorsExcelFile.Add(ErrorMessage);
                                        continue;
                                    }
                                    director.Sex = row.Cell(3).Value.ToString();
                                    var result   = true;
                                    int year     = DateTime.Now.Year - 18;
                                    int month    = DateTime.Now.Month;
                                    int day      = DateTime.Now.Day;
                                    int min_year = 1700;
                                    int var      = Convert.ToDateTime(row.Cell(4).Value).Year;
                                    int var1     = Convert.ToDateTime(row.Cell(4).Value).Month;
                                    int var2     = Convert.ToDateTime(row.Cell(4).Value).Day;
                                    if (var > year || var < min_year || (var == year && var1 > month) || (var == year && var1 == month && var2 > day))
                                    {
                                        result = false;
                                    }
                                    if (result == false || Convert.ToDateTime(row.Cell(4).Value).ToString().Length == 0)
                                    {
                                        string template     = "Назва листа альбому:{0}. Рядок: {1}. {2}";
                                        string message      = "Неправильна дата народження режисера або поле незаповнено";
                                        string ErrorMessage = string.Format(template, worksheet.Name, row, message);
                                        ErrorsExcelFile.Add(ErrorMessage);
                                        continue;
                                    }

                                    director.Birth = Convert.ToDateTime(row.Cell(4).Value);
                                    if (!string.IsNullOrEmpty(row.Cell(5).Value.ToString()))
                                    {
                                        director.Death = Convert.ToDateTime(row.Cell(5).Value);
                                    }
                                    else
                                    {
                                        director.Death = null;
                                    }
                                    _context.Add(director);
                                }
                                film.Director = director;

                                string name4 = row.Cell(7).Value.ToString();
                                if (name1.Length > 50 || name1.Length < 3)
                                {
                                    string template     = "Назва листа альбому:{0}. Рядок: {1}. {2}";
                                    string message      = "Довжина назви кінокомпанії <3 або >50 символів, або поле незаповнено";
                                    string ErrorMessage = string.Format(template, worksheet.Name, row, message);
                                    ErrorsExcelFile.Add(ErrorMessage);
                                    continue;
                                }
                                Company company;
                                var     co = (from aut in _context.Company
                                              where aut.Name.Contains(row.Cell(7).Value.ToString())
                                              select aut).ToList();
                                if (co.Count() > 0)
                                {
                                    company = co[0];
                                }
                                else
                                {
                                    company = new Company
                                    {
                                        Name = row.Cell(7).Value.ToString(),
                                        Year = Convert.ToInt32(row.Cell(8).Value)
                                    };
                                    _context.Add(company);
                                }
                                film.Director.Company = company;

                                _context.Film.Add(film);
                                _context.FilmGenre.Add(filmGenre);
                                await _context.SaveChangesAsync();
                            }
                        }

                        if (ErrorsExcelFile.Count != 0)
                        {
                            Errors.Add(ErrorsExcelFile);
                        }
                    }
                    await _context.SaveChangesAsync();

                    if (Errors.Count != 0)
                    {
                        string name = fileExcel.FileName;
                        ExportErrorsWord(Errors, name);
                    }
                }
            }
            return(RedirectToAction("Index", "Films"));
        }
예제 #21
0
        public static void Initialize(DVDContext context)
        {
            context.Database.EnsureCreated();

            // Look for any Actors.
            if (context.Actors.Any())
            {
                return;   // DB has been seeded
            }

// Actors
            var actors = new Actor[]
            {
                new Actor {
                    ActorID       = 101,
                    ActorFullName = "Leonardo DiCaprio",
                    ActorNotes    = "Es un actor, productor de cine."
                },
                new Actor {
                    ActorID       = 102,
                    ActorFullName = "Katherine Elizabeth Winslet",
                    ActorNotes    = "Nacida en una familia de actores."
                },
                new Actor {
                    ActorID       = 103,
                    ActorFullName = "Billy Zane ",
                    ActorNotes    = "Conocido como Billy Zane, es un actor y director estadounidense."
                },
                new Actor {
                    ActorID       = 104,
                    ActorFullName = "Frances Fisher ",
                    ActorNotes    = "Ha aparecido en películas como Unforgiven, Titanic, Gone in Sixty Seconds y True Crime (1999)."
                },
                new Actor {
                    ActorID       = 105,
                    ActorFullName = "Gloria Stuart ",
                    ActorNotes    = "Actriz estadounidense, adquirió reconocimiento internacional por su papel de Rose DeWitt Bukater en la película Titanic (1997)."
                }
            };

            foreach (Actor s in actors)
            {
                context.Actors.Add(s);
            }
            context.SaveChanges();

// RoleType

            var roleTypes = new RoleType[]
            {
                new RoleType {
                    RoleTypeID = 1,
                    RoleTypes  = " Jack Dawson, Principal"
                },
                new RoleType {
                    RoleTypeID = 2,
                    RoleTypes  = " Rose DeWitt Bukater, Principal"
                },
                new RoleType {
                    RoleTypeID = 3,
                    RoleTypes  = " Caledon Nathan , Secundario"
                },
                new RoleType {
                    RoleTypeID = 4,
                    RoleTypes  = " Ruth DeWitt Bukater, Secundario"
                },
                new RoleType {
                    RoleTypeID = 5,
                    RoleTypes  = " Rose Dawson (Anciana), Principal"
                }
            };

            foreach (RoleType i in roleTypes)
            {
                context.RoleTypes.Add(i);
            }
            context.SaveChanges();

// Producers
            var producers = new Producer[]
            {
                new Producer {
                    ProducerID          = 1,
                    ProducerName        = "James Cameron",
                    ContactEmailAddress = "*****@*****.**",
                    Website             = "https://www.imdb.com/name/nm0000116/"
                },
                new Producer {
                    ProducerID          = 2,
                    ProducerName        = "Jon Landau ",
                    ContactEmailAddress = "*****@*****.**",
                    Website             = "https://www.imdb.com/name/nm0484457/"
                },
                new Producer {
                    ProducerID          = 3,
                    ProducerName        = "Guillermo del Toro",
                    ContactEmailAddress = "*****@*****.**",
                    Website             = "https://deltorofilms.com/"
                },
                new Producer {
                    ProducerID          = 4,
                    ProducerName        = "Steven S. DeKnight",
                    ContactEmailAddress = "*****@*****.**",
                    Website             = "https://www.imdb.com/name/nm0000116/"
                },
            };

            foreach (Producer i in producers)
            {
                context.Producers.Add(i);
            }
            context.SaveChanges();

// FilmCertificate
            var filmCertificates = new FilmCertificate[]
            {
                new FilmCertificate {
                    CertificateID = 1,
                    Certificate   = "PG-13"
                },
                new FilmCertificate {
                    CertificateID = 2,
                    Certificate   = "PG"
                },
                new FilmCertificate {
                    CertificateID = 3,
                    Certificate   = "G"
                },
                new FilmCertificate {
                    CertificateID = 4,
                    Certificate   = "R"
                },
                new FilmCertificate {
                    CertificateID = 5,
                    Certificate   = "NR"
                }
            };

            foreach (FilmCertificate i in filmCertificates)
            {
                context.FilmCertificates.Add(i);
            }
            context.SaveChanges();

// FilmGenres
            var filmGenres = new FilmGenre[]
            {
                new FilmGenre {
                    GenreID = 1,
                    Genre   = "Drama"
                },
                new FilmGenre {
                    GenreID = 2,
                    Genre   = "Romance"
                },
                new FilmGenre {
                    GenreID = 3,
                    Genre   = "Comedia"
                },
                new FilmGenre {
                    GenreID = 4,
                    Genre   = "Ficción"
                },
                new FilmGenre {
                    GenreID = 5,
                    Genre   = "Acción"
                },
                new FilmGenre {
                    GenreID = 6,
                    Genre   = "Documental"
                }
            };

            foreach (FilmGenre i in filmGenres)
            {
                context.FilmGenres.Add(i);
            }
            context.SaveChanges();
// Film Titles

            var filmTitles = new FilmTitle[]
            {
                new FilmTitle {
                    FilmTitleID        = 10,
                    FilmTitles         = "Titanic",
                    FilmStory          = "Jack, un joven artista, en una partida de cartas gana un pasaje para América, en el Titanic, el trasatlántico más grande y seguro jamás construido.",
                    FilmReleaseDate    = DateTime.Parse("1997-12-19"),
                    FilmDuration       = 195,
                    GenreID            = filmGenres.Single(c => c.GenreID == 1).GenreID,
                    CertificateID      = filmCertificates.Single(c => c.CertificateID == 1).CertificateID,
                    FilmAdditionalInfo = "Titanic obtuvo muy buenas críticas tras su estreno."
                }
            };

            foreach (FilmTitle i in filmTitles)
            {
                context.FilmTitles.Add(i);
            }
            context.SaveChanges();


// Film Titles Producer

            var filmTitlesProducers = new FilmTitlesProducer[]
            {
                new FilmTitlesProducer {
                    ProducerID  = producers.Single(c => c.ProducerID == 1).ProducerID,
                    FilmTitleID = filmTitles.Single(c => c.FilmTitleID == 10).FilmTitleID
                },
                new FilmTitlesProducer {
                    ProducerID  = producers.Single(c => c.ProducerID == 2).ProducerID,
                    FilmTitleID = filmTitles.Single(c => c.FilmTitleID == 10).FilmTitleID
                },
            };

            foreach (FilmTitlesProducer i in filmTitlesProducers)
            {
                context.FilmTitlesProducers.Add(i);
            }
            context.SaveChanges();

// FilmsActorRoles
            var filmsActorRols = new FilmsActorRol[]
            {
                new FilmsActorRol {
                    FilmTitleID          = filmTitles.Single(c => c.FilmTitleID == 10).FilmTitleID,
                    ActorID              = actors.Single(c => c.ActorID == 101).ActorID,
                    RoleTypeID           = roleTypes.Single(c => c.RoleTypeID == 1).RoleTypeID,
                    CharacterName        = " Jack Dawson",
                    CharacterDescription = "Un sujeto de Wisconsin de clase baja que ha viajado por varias partes del mundo."
                },
                new FilmsActorRol {
                    FilmTitleID          = filmTitles.Single(c => c.FilmTitleID == 10).FilmTitleID,
                    ActorID              = actors.Single(c => c.ActorID == 102).ActorID,
                    RoleTypeID           = roleTypes.Single(c => c.RoleTypeID == 2).RoleTypeID,
                    CharacterName        = "Kate Winslet",
                    CharacterDescription = "Una joven de diecisiete años originaria de Filadelfia."
                },
                new FilmsActorRol {
                    FilmTitleID          = filmTitles.Single(c => c.FilmTitleID == 10).FilmTitleID,
                    ActorID              = actors.Single(c => c.ActorID == 103).ActorID,
                    RoleTypeID           = roleTypes.Single(c => c.RoleTypeID == 3).RoleTypeID,
                    CharacterName        = "Billy Zane ",
                    CharacterDescription = "Un adinerado de treinta años de edad, funge como el antagonista de la película."
                },
                new FilmsActorRol {
                    FilmTitleID          = filmTitles.Single(c => c.FilmTitleID == 10).FilmTitleID,
                    ActorID              = actors.Single(c => c.ActorID == 104).ActorID,
                    RoleTypeID           = roleTypes.Single(c => c.RoleTypeID == 4).RoleTypeID,
                    CharacterName        = "Ruth DeWitt Bukater ",
                    CharacterDescription = "Desea que su hija contraiga matrimonio con Cal."
                },
                new FilmsActorRol {
                    FilmTitleID          = filmTitles.Single(c => c.FilmTitleID == 10).FilmTitleID,
                    ActorID              = actors.Single(c => c.ActorID == 105).ActorID,
                    RoleTypeID           = roleTypes.Single(c => c.RoleTypeID == 5).RoleTypeID,
                    CharacterName        = "Rose Dawson Calvert",
                    CharacterDescription = "La misma protagonista solo que con una edad de 100 años."
                }
            };

            foreach (FilmsActorRol i in filmsActorRols)
            {
                context.FilmsActorRols.Add(i);
            }
            context.SaveChanges();
// --------------------------------------------------------------------------------------------------
        }
예제 #22
0
 public FilmGenreValid(FilmsContext _context, FilmGenre filmgenre)
 {
     this._context  = _context;
     this.filmgenre = filmgenre;
 }
예제 #23
0
        public async Task <IActionResult> EditFilm(IFormCollection form, AddFilmViewModel addFilmViewModel)
        {
            if (!ModelState.IsValid)
            {
                var film           = _uow.FilmRepository.GetById(addFilmViewModel.Film.FilmId);
                var genres         = _uow.GenreRepository.Get();
                var selectedGenres = _uow.GenreRepository.Get().Include(a => a.FilmGenres)
                                     .Where(a => a.FilmGenres.Any(filmGenre => filmGenre.FilmId == addFilmViewModel.Film.FilmId));

                var items = new List <SelectListItem>();
                foreach (var genre in selectedGenres)
                {
                    var item = new SelectListItem(genre.GenreName, genre.GenreId.ToString());
                    items.Add(item);
                }
                var genreViewModel = new AddFilmViewModel {
                    SelectedGenres = items, Film = film, OriginalSelectedGenres = items, Genres = genres
                };
                return(View(genreViewModel));
            }

            var uploads = Path.Combine(_appEnvironment.WebRootPath, "img", addFilmViewModel.PostedFile.FileName);

            await using (var fileStream = new FileStream(uploads, FileMode.Create))
            {
                await addFilmViewModel.PostedFile.CopyToAsync(fileStream);
            }

            var myFilm = _uow.FilmRepository.GetById(addFilmViewModel.Film.FilmId);

            myFilm.Title       = addFilmViewModel.Film.Title;
            myFilm.Length      = addFilmViewModel.Film.Length;
            myFilm.Url         = addFilmViewModel.PostedFile.FileName;
            myFilm.Description = addFilmViewModel.Film.Description;

            _uow.FilmRepository.Update(myFilm);

            var addItems    = form["SelectedGenre"].Except(form["OriginalSelectedGenre"]);
            var removeItems = form["OriginalSelectedGenre"].Except(form["SelectedGenre"]);

            foreach (var item in addItems)
            {
                var filmGenre = new FilmGenre {
                    FilmId = myFilm.FilmId, GenreId = int.Parse(item)
                };
                _uow.FilmGenreRepository.Add(filmGenre);
            }

            foreach (var item in removeItems)
            {
                var filmGenre = _uow.FilmGenreRepository.Get()
                                .Where(a => a.FilmId == myFilm.FilmId && a.GenreId == int.Parse(item)).Cast <FilmGenre>().FirstOrDefault();
                if (filmGenre == null)
                {
                    continue;
                }
                filmGenre.Deleted = 1;
                _uow.FilmGenreRepository.Update(filmGenre);
            }

            _uow.Commit();

            return(RedirectToAction("Film"));
        }