public HighlyRatedSongsAdviser(IAdviseRankCalculator adviseRankCalculator, IClock dateTimeFacade, IOptions <HighlyRatedSongsAdviserSettings> options) { this.adviseRankCalculator = adviseRankCalculator ?? throw new ArgumentNullException(nameof(adviseRankCalculator)); this.dateTimeFacade = dateTimeFacade ?? throw new ArgumentNullException(nameof(dateTimeFacade)); this.settings = options?.Value ?? throw new ArgumentNullException(nameof(options)); if (settings.OneAdviseSongsNumber <= 0) { throw new InvalidOperationException($"{nameof(settings.OneAdviseSongsNumber)} is not set for highly rated songs adviser"); } maxTermsForRatings = settings.MaxTerms .ToDictionary(t => t.Rating, t => TimeSpan.FromDays(t.Days)); }
public RankBasedAdviseContentSorter(IAdviseRankCalculator adviseRankCalculator) { this.adviseRankCalculator = adviseRankCalculator ?? throw new ArgumentNullException(nameof(adviseRankCalculator)); }