public async Task <IActionResult> Index(string routeName, [FromServices] IMemoryCache cache)
        {
            if (string.IsNullOrWhiteSpace(routeName))
            {
                return(BadRequest());
            }

            var cacheKey     = $"page-{routeName.ToLower()}";
            var pageResponse = await cache.GetOrCreateAsync(cacheKey, async entry =>
            {
                var response = await _customPageService.GetPageAsync(routeName);
                return(response);
            });

            if (pageResponse.IsSuccess)
            {
                if (pageResponse.Item == null)
                {
                    return(NotFound());
                }

                return(View(pageResponse.Item));
            }
            return(ServerError());
        }
Esempio n. 2
0
        public async Task <IActionResult> Index(string slug)
        {
            if (string.IsNullOrWhiteSpace(slug))
            {
                return(BadRequest());
            }

            var cacheKey     = $"page-{slug.ToLower()}";
            var pageResponse = await _cache.GetOrCreateAsync(cacheKey, async entry =>
            {
                var response = await _customPageService.GetPageAsync(slug);
                return(response);
            });

            if (pageResponse.IsSuccess)
            {
                if (pageResponse.Item == null)
                {
                    Logger.LogWarning($"Page not found. {nameof(slug)}: '{slug}'");
                    return(NotFound());
                }

                return(View(pageResponse.Item));
            }
            return(ServerError());
        }