public CompositePlaylistAdviser(IDiscGrouper discGrouper, IPlaylistAdviser rankBasedAdviser, IPlaylistAdviser highlyRatedSongsAdviser,
                                 IPlaylistAdviser favoriteAdviseGroupsAdviser, ISessionDataService sessionDataService, IOptions <AdviserSettings> options)
 {
     this.discGrouper                 = discGrouper ?? throw new ArgumentNullException(nameof(discGrouper));
     this.rankBasedAdviser            = rankBasedAdviser ?? throw new ArgumentNullException(nameof(rankBasedAdviser));
     this.highlyRatedSongsAdviser     = highlyRatedSongsAdviser ?? throw new ArgumentNullException(nameof(highlyRatedSongsAdviser));
     this.favoriteAdviseGroupsAdviser = favoriteAdviseGroupsAdviser ?? throw new ArgumentNullException(nameof(favoriteAdviseGroupsAdviser));
     this.sessionDataService          = sessionDataService ?? throw new ArgumentNullException(nameof(sessionDataService));
     this.settings = options?.Value ?? throw new ArgumentNullException(nameof(options));
 }
 public FavoriteAdviseGroupsAdviser(IPlaylistAdviser rankBasedAdviser)
 {
     this.rankBasedAdviser = rankBasedAdviser ?? throw new ArgumentNullException(nameof(rankBasedAdviser));
 }