Exemplo n.º 1
0
        private async Task <IActionResult> GetErrorView(int statusCode, ErrorPageViewModelBuilderParameters vmParameters)
        {
            var viewName  = FindView(statusCode);
            var viewModel = await _pageViewModelBuilder.BuildErrorPageViewModelAsync(vmParameters);

            return(View(viewName, viewModel));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Maps data to an empty view model for a generic error page.
        /// </summary>
        /// <param name="viewModel">The view model to map data to.</param>
        /// <param name="mappingParameters">The data passed through to map to the view model.</param>
        public virtual Task MapErrorPageViewModelAsync(
            IErrorPageViewModel viewModel,
            ErrorPageViewModelBuilderParameters mappingParameters
            )
        {
            if (viewModel == null)
            {
                throw new ArgumentNullException(nameof(viewModel));
            }
            if (mappingParameters == null)
            {
                throw new ArgumentNullException(nameof(mappingParameters));
            }
            if (mappingParameters.StatusCode < 100)
            {
                throw new ArgumentOutOfRangeException(nameof(mappingParameters.StatusCode));
            }

            viewModel.StatusCode            = mappingParameters.StatusCode;
            viewModel.StatusCodeDescription = GetStatusCodeDescription(viewModel.StatusCode);
            viewModel.PageTitle             = "Error: " + viewModel.StatusCodeDescription;
            viewModel.MetaDescription       = "Sorry, an error has occured";
            viewModel.Path        = mappingParameters.Path;
            viewModel.PathBase    = mappingParameters.PathBase;
            viewModel.QueryString = mappingParameters.QueryString;

            return(Task.CompletedTask);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Creates and maps data to a view model for a generic error page.
        /// </summary>
        /// <param name="mappingParameters">The data passed through to map to the view model.</param>
        public virtual async Task <IErrorPageViewModel> BuildErrorPageViewModelAsync(
            ErrorPageViewModelBuilderParameters mappingParameters
            )
        {
            var viewModel = _pageViewModelFactory.CreateNotFoundPageViewModel();

            await _pageViewModelMapper.MapErrorPageViewModelAsync(viewModel, mappingParameters);

            return(viewModel);
        }
Exemplo n.º 4
0
        public Task <IActionResult> Exception()
        {
            const int STATUS_CODE = 500;

            var feature = HttpContext.Features.Get <IExceptionHandlerPathFeature>();
            var request = HttpContext.Request;

            var vmParameters = new ErrorPageViewModelBuilderParameters()
            {
                StatusCode  = STATUS_CODE,
                Path        = feature.Path,
                PathBase    = request.PathBase,
                QueryString = request.QueryString.Value
            };

            return(GetErrorView(STATUS_CODE, vmParameters));
        }
Exemplo n.º 5
0
        public async Task <IActionResult> ErrorCode(int statusCode)
        {
            var request = HttpContext.Request;
            var feature = HttpContext.Features.Get <IStatusCodeReExecuteFeature>();

            if (statusCode == (int)HttpStatusCode.NotFound)
            {
                return(await _notFoundViewHelper.GetViewAsync(this));
            }

            var vmParameters = new ErrorPageViewModelBuilderParameters()
            {
                StatusCode  = statusCode,
                Path        = feature?.OriginalPath ?? request.Path,
                PathBase    = feature?.OriginalPathBase ?? request.PathBase,
                QueryString = feature?.OriginalQueryString ?? request.QueryString.Value
            };

            return(await GetErrorView(statusCode, vmParameters));
        }