コード例 #1
0
        /// <summary>
        /// Gibt die Detailinformationen zu einem Film auf Basis der Ofdb Id zurück.
        /// </summary>
        /// <param name="EngineId">Enhtält der Suchstring ein Semikolon, so kommt die OFDB spezifische Such nach Fassungen zum Tragen.</param>
        /// <returns></returns>
        public List <MovieMetaEngine.MovieMetaMovieModel> SearchMovieByEngineId(string EngineId)
        {
            // Variable für die OFDB Id
            string ofdbId = null;

            // Objekt für ein eventuelle Fassungsresultat erstellen
            Edition.ofdbgw editionResult = null;

            // Wir ermitteln ob nur eine OFDB Id oder eine Kombination aus OFDB Id und Fassungs ID übergeben wurde
            if (EngineId.Contains(';'))
            {
                // Wir splitten die Id am Delimiter auf, Ofdb Id ist der erste Teil
                ofdbId = EngineId.Split(';')[0];

                // Die Daten für die Fassung füllen wir per Anfrage mit dem komplette String ab
                editionResult = GenericSearch <Edition.ofdbgw>(urlBase + "fassung/" + EngineId);
            }
            else
            {
                ofdbId = EngineId;
            }

            // Wir holen uns nun den Movie-Teil unseres Films anhand der ofdbId ...
            Movie.ofdbgw movieResult = GenericSearch <Movie.ofdbgw>(urlBase + "movie/" + ofdbId);

            // ... und mappen das Ergbnis auf unser MetaModel
            MovieMetaEngine.MovieMetaMovieModel m = new MovieMetaEngine.MovieMetaMovieModel();
            m = OfdbModelToMovieMetaModelMapper.MapToMovieMetaMovieModel(movieResult);

            // ToDo: Edition dem Movie hinzufügen. Geht es hier nur um die Länge?
            m.Length = editionResult != null
                ? Runtime.Parse(editionResult.resultat.laufzeit) : "0";

            // Im Ergebnis scheint die eigentliche OFDB ID dann gar nicht mehr enthalten zu sein
            // Wir setzen sie daher hier nochmals explizit ein.
            m.Reference = EngineId;

            // Wir erstellen die Ergebnisliste
            List <MovieMetaEngine.MovieMetaMovieModel> resultList = new List <MovieMetaEngine.MovieMetaMovieModel>();

            resultList.Add(m);

            return(resultList);
        }
コード例 #2
0
        /// <summary>
        /// Methode zur Umwandlung eines OfdbgwApiSearchByMovieId Ergebnis Objektes in das normalisiert MovieMetaEngine Format
        /// </summary>
        /// <param name="ofdbObject"></param>
        /// <returns></returns>
        public static MovieMetaEngine.MovieMetaMovieModel MapToMovieMetaMovieModel(Movie.ofdbgw ofdbObject)
        {
            Mapper.CreateMap <Movie.ofdbgw, MovieMetaEngine.MovieMetaMovieModel>()
            .ForAllMembers(opt => opt.Ignore());

            Mapper.CreateMap <Movie.ofdbgw, MovieMetaEngine.MovieMetaMovieModel>()
            .ForMember(dest => dest.Title, m => m.MapFrom(s => s.resultat.titel))
            .ForMember(dest => dest.Year, m => m.MapFrom(s => s.resultat.jahr))
            .ForMember(dest => dest.ImgUrl, m => m.MapFrom(s => s.resultat.bild))
            .ForMember(dest => dest.MetaEngine, m => m.UseValue(metaEngineIdentifier))
            .ForMember(dest => dest.Reference, m => m.Ignore())     // die eigentliche ofdb id scheint in diesem Erebnis nicht mehr enthalten zu sein.
            .ForMember(dest => dest.Actors, m => m.ResolveUsing <ActorResolver>().FromMember(s => s.resultat.besetzung))
            //.ForMember(dest => dest.Plot, m => m.MapFrom(s => s.resultat.beschreibung))
            .ForMember(dest => dest.Plot,
                       m => m.MapFrom(s => String.IsNullOrWhiteSpace(s.resultat.beschreibung)
                        ? s.resultat.kurzbeschreibung : s.resultat.beschreibung))
            .ForMember(dest => dest.Editions, m => m.ResolveUsing <EditionsResolver>().FromMember(s => s.resultat.fassungen))
            .ForMember(dest => dest.Genres, m => m.MapFrom(s => s.resultat.genre))
            .ForMember(dest => dest.ProductionCountry, m => m.MapFrom(s => s.resultat.produktionsland.name));

            return(Mapper.Map <Movie.ofdbgw, MovieMetaEngine.MovieMetaMovieModel>(ofdbObject));
        }