public RecommendationsController(
            IConfiguration configuration, IQueuedRecommendationStorage storage,
            IRecommendationQueue queue = null, IQueueHandler handler = null,
            ILogger <RecommendationsController> logger = null)
        {
            _storage = storage;
            _queue   = queue is null ? new RecommendationQueue(_storage) : queue;

            if (handler is null)
            {
                var optionsBuilder = new DbContextOptionsBuilder <Database.DatabaseContext>();
                optionsBuilder.UseSqlServer(configuration["DatabaseConnectionString"]);
                _handler = QueueHandler.GetOrCreate(optionsBuilder.Options, configuration, _queue, _storage, logger);
            }
            else
            {
                _handler = handler;
            }
        }