public async Task <IActionResult> Index()
        {
            logger.Trace("Start requesting home page...");

            await bus.PublishAsync(new HomePageRequestedEvent());

            return(View());
        }
        public async Task <IActionResult> Index([FromRoute] SearchPageRequestedEvent eEvent)
        {
            logger.Trace("Start requesting search page...");

            await bus.PublishAsync(eEvent);

            return(View());
        }
        public async Task <IActionResult> Index(DetailsQuery query)
        {
            logger.Trace("Start requesting details page...");

            var taskGetDetails = bus.SendAsync <DetailsQuery, DetailsViewModel>(query);

            await Task.WhenAll(taskGetDetails, bus.PublishAsync(new DetailsPageRequestedEvent()));

            var response = taskGetDetails.Result;

            if (response.Value == null)
            {
                return(Redirect("~/"));
            }

            response.Value.IsSaved = savedItemsProvider.Get().Any(x => x == response.Value.Id);

            return(View(response.Value));
        }