private RawDataContainer AddAdditionalParameters(IReadOnlyList <BasicInfo> data) { var container = new RawDataContainer(data); switch (data[0]) { case TmdbMovieInfo _: { if (_repositories.TryGetValue(typeof(TmdbMovieInfo), out IDataRepository repository)) { container.AddParameter( nameof(TmdbMovieInfo.VoteCount), GetAdditionalInfoInt32(repository, "vote_count") ); container.AddParameter( nameof(TmdbMovieInfo.VoteAverage), GetAdditionalInfoDouble(repository, "vote_average") ); container.AddParameter( nameof(TmdbMovieInfo.Popularity), GetAdditionalInfoDouble(repository, "popularity") ); } break; } case BasicInfo _: { if (_repositories.TryGetValue(typeof(BasicInfo), out IDataRepository repository)) { container.AddParameter( nameof(BasicInfo.VoteCount), GetAdditionalInfoInt32(repository, "vote_count") ); container.AddParameter( nameof(BasicInfo.VoteAverage), GetAdditionalInfoDouble(repository, "vote_average") ); } break; } default: { _logger.Warn($"Unregornized data type: {data[0].GetType().FullName}"); break; } } return(container); }
internal static RawDataContainer CreateRawDataContainerWithBasicInfo( IEnumerable <BasicInfo> items) { items.ThrowIfNull(nameof(items)); var container = new RawDataContainer(new List <BasicInfo>(items)); if (!container.RawData.Any()) { return(container); } container.AddParameter( nameof(BasicInfo.VoteCount), MinMaxDenominator.CreateForCollection(container.RawData, basic => basic.VoteCount) ); container.AddParameter( nameof(BasicInfo.VoteAverage), MinMaxDenominator.CreateForCollection(container.RawData, basic => basic.VoteAverage) ); return(container); }