Exemplo n.º 1
0
        /// <inheritdoc />
        public async IAsyncEnumerable <BasicInfo> GetResponse(string entityName, bool outputResults)
        {
            TmdbServiceConfiguration.SetServiceConfigurationOnce(
                await GetServiceConfiguration(outputResults)
                );

            TmdbSearchContainer?response = await _tmdbClient.TrySearchMovieAsync(entityName);

            if (response is null || response.Results.IsNullOrEmpty())
            {
                string message = $"{entityName} was not processed.";
                _logger.Warn(message);
                GlobalMessageHandler.OutputMessage(message);

                yield break;
            }

            // Get first search result from response and ignore all the rest.
            TmdbMovieInfo searchResult = response.Results.First();

            if (outputResults)
            {
                GlobalMessageHandler.OutputMessage($"Got {searchResult.Title} from \"{Tag}\".");
            }

            if (_searchResults.Add(searchResult))
            {
                yield return(searchResult);
            }

            yield break;
        }
Exemplo n.º 2
0
        /// <inheritdoc />
        public IReadOnlyList <BasicInfo> GetResponse(IReadOnlyList <string> entities,
                                                     bool outputResults)
        {
            TmdbServiceConfiguration.SetServiceConfigurationOnce(
                GetServiceConfiguration(outputResults)
                );

            // Use HashSet to avoid duplicated data which can produce errors in further work.
            var searchResults = new HashSet <BasicInfo>();

            foreach (string movie in entities)
            {
                TmdbSearchContainer?response = _tmdbClient.TrySearchMovieAsync(movie).Result;

                if (response is null || response.Results.IsNullOrEmpty())
                {
                    string message = $"{movie} was not processed.";
                    _logger.Warn(message);
                    GlobalMessageHandler.OutputMessage(message);

                    continue;
                }

                // Get first search result from response and ignore all the rest.
                TmdbMovieInfo searchResult = response.Results.First();
                if (outputResults)
                {
                    GlobalMessageHandler.OutputMessage($"Got {searchResult.Title} from \"{Tag}\".");
                }

                searchResults.Add(searchResult);
            }
            return(searchResults.ToList());
        }
Exemplo n.º 3
0
 public void ProcessMetaData(ResponseMetaData metaData)
 {
     if (metaData.OptionalData.TryGetValue(nameof(TmdbServiceConfiguration),
                                           out IOptionalData optionalData))
     {
         if (!TmdbServiceConfiguration.HasValue)
         {
             var tmdbServiceConfig = (TmdbServiceConfigurationInfo)optionalData;
             TmdbServiceConfiguration.SetServiceConfigurationIfNeed(tmdbServiceConfig);
         }
     }
 }
Exemplo n.º 4
0
        public void ProcessMetadata(ResponseMetadata metadata)
        {
            metadata.ThrowIfNull(nameof(metadata));

            if (metadata.OptionalData.TryGetValue(nameof(TmdbServiceConfiguration),
                                                  out IOptionalData? optionalData))
            {
                if (optionalData is null)
                {
                    throw new InvalidOperationException($"{nameof(optionalData)} cannot be null.");
                }

                if (!TmdbServiceConfiguration.HasValue)
                {
                    var tmdbServiceConfig = (TmdbServiceConfigurationInfo)optionalData;
                    TmdbServiceConfiguration.SetServiceConfigurationAnyway(tmdbServiceConfig);
                }
            }
        }