public async Task InvokeAsync(HttpContext context, RequestDelegate next)
        {
            var requestDomain = context.Request.Host.Value;
            var site          = await _siteProvider.LoadAsync(requestDomain);

            if (site != null)
            {
                _siteRequestAccessor.Current.Site = site;
                var theme = await _themeProvider.LoadTheme(site.ThemeId);

                _siteRequestAccessor.Current.Theme = theme;
                await next.Invoke(context);
            }
            else
            {
                context.Response.StatusCode = StatusCodes.Status404NotFound;
                await context.Response.WriteAsync(ErrorCodes.NotFoundSite.MessageContent);
            }
        }