Exemple #1
0
        public FilmScore EditFilmScore(int filmId, FilmScore fs)
        {
            var oldVal = FindFilmScoreByFilmId(filmId);

            FilmScores.Remove(oldVal);
            var newVal = FilmScores.Add(fs);

            SaveChanges();

            return(newVal.Entity);
        }
Exemple #2
0
        public Film AddFilm(FilmModel filmModel)
        {
            var kinopoiskInfo = KinozalSearcher.GetKinopoiskInfo(filmModel.RusName);

            var film = new Film()
            {
                RusName     = filmModel.RusName,
                Year        = kinopoiskInfo.Year ?? filmModel.Year,
                Description = filmModel.Description,
                Director    = kinopoiskInfo.Director ?? filmModel.Director,
                Genres      = 0,
            };

            foreach (var genre in filmModel.Genres.Where(g => g.IsSelected))
            {
                film.Genres |= (int)genre.Name;
            }

            var ret = Films.Add(film);

            SaveChanges();

            FilmScores.Add(new FilmScore()
            {
                FilmId     = film.FilmId,
                AvgScore   = 0.0,
                ReviewsNum = 0
            });

            SaveChanges();

            var links = KinozalSearcher.GetLinks(film.RusName);

            if (!string.IsNullOrEmpty(links[0].Poster))
            {
                using var webClient = new WebClient();
                film.Picture        = webClient.DownloadData(links[0].Poster);
            }

            if (film.Picture is null && film.Picture is not null)
            {
                using var binaryReader = new BinaryReader(filmModel.Picture.OpenReadStream());
                film.Picture           = binaryReader.ReadBytes((int)filmModel.Picture.Length);
            }

            foreach (var link in links)
            {
                Links.Add(new KinozalLink
                {
                    FilmId  = film.FilmId,
                    Link    = link.Link,
                    Quality = link.Quality,
                    Size    = link.Size
                });
            }

            SaveChanges();


            return(ret.Entity);
        }