示例#1
0
        public async Task <IActionResult> OnGetMovieSelection(string id, string providerMovieId)
        {
            // Bereits bekannten Film laden
            Movie = await MovieService.GetWithGenresAndSourcesAsync(id);

            // Falls nicht bekannt, neuen Film anlegen
            if (Movie == null)
            {
                Movie = MovieService.CreateMovie();
            }

            // Übernahme der Daten aus MovieDb
            IMovieProvider movieProvider = MovieProviderFactory.CreateMovieProvider(MovieProviders.MovieDb);
            var            movieDto      = await movieProvider.GetMovieAsync(providerMovieId);

            Movie = await MovieService.ApplyDtoData(Movie, movieDto);

            await Init();

            // Speichern des Films nach der Auswahl: Eigentlich nicht nötig, aber wegen des "falschen" Cover-Handlings notwendig,
            // damit das ausgewählte Cover nicht verloren geht (es ist nicht gebunden, da byte-Array)
            // Siehe auch Kommentar bei SetCover
            await SaveChanesAsync();

            return(Page());
        }
        public async Task <IActionResult> OnGetAsync(string id, string title, MovieProviders provider)
        {
            MovieId = id;

            IMovieProvider movieProvider = MovieProviderFactory.CreateMovieProvider(provider);

            try
            {
                var movies = await movieProvider.SearchMovieAsync(title);

                Movies = new List <MovieDbMovie>();

                await Task.Run(() =>
                {
                    foreach (MovieDbMovie movieDto in movies)
                    {
                        movieDto.Cover = movieProvider.GetMovieCover(movieDto);
                        Movies.Add(movieDto);
                    }
                });
            }
            catch (Exception ex)
            {
                //TODO: Logging im WebProject
                //LogManager.GetCurrentClassLogger().Error(ex);
            }

            return(Page());
        }