public async Task <IActionResult> HowCanWeHelpView()
        {
            var sessionStateModel = await GetSessionStateAsync().ConfigureAwait(false);

            var breadcrumbItemModel = new BreadcrumbItemModel
            {
                Route = ThisViewCanonicalName,
                Title = Title,
            };
            var viewModel = new HowCanWeHelpViewModel()
            {
                HtmlHead = new HtmlHeadViewModel
                {
                    CanonicalUrl = new Uri($"{Request.GetBaseAddress()}{LocalPath}/{ThisViewCanonicalName}", UriKind.RelativeOrAbsolute),
                    Title        = Title + PageTitleSuffix,
                },
                Breadcrumb = BuildBreadcrumb(LocalPath, breadcrumbItemModel),
                HowCanWeHelpBodyViewModel = new HowCanWeHelpBodyViewModel
                {
                    SelectedCategory = sessionStateModel?.State?.Category ?? Category.None,
                    MoreDetail       = sessionStateModel?.State?.MoreDetail,
                    IsCallback       = sessionStateModel?.State?.IsCallback ?? false,
                },
            };

            Logger.LogWarning($"{nameof(HowCanWeHelpView)} has returned content");

            return(this.NegotiateContentResult(viewModel));
        }
        public async Task <IActionResult> HowCanWeHelpView(HowCanWeHelpBodyViewModel?model)
        {
            if (model != null && ModelState.IsValid)
            {
                switch (model.SelectedCategory)
                {
                case Category.AdviceGuidance:
                case Category.Courses:
                case Category.Website:
                case Category.Feedback:
                case Category.Other:
                    if (await SetSessionStateAsync(model.SelectedCategory.Value, model.MoreDetail, model.IsCallback).ConfigureAwait(false))
                    {
                        return(Redirect($"/{LocalPath}/{EnterYourDetailsController.ThisViewCanonicalName}"));
                    }

                    break;
                }
            }

            var breadcrumbItemModel = new BreadcrumbItemModel
            {
                Route = ThisViewCanonicalName,
                Title = Title,
            };
            var viewModel = new HowCanWeHelpViewModel()
            {
                HtmlHead = new HtmlHeadViewModel
                {
                    CanonicalUrl = new Uri($"{Request.GetBaseAddress()}{LocalPath}/{ThisViewCanonicalName}", UriKind.RelativeOrAbsolute),
                    Title        = Title + PageTitleSuffix,
                },
                Breadcrumb = BuildBreadcrumb(LocalPath, breadcrumbItemModel),
                HowCanWeHelpBodyViewModel = model,
            };

            Logger.LogWarning($"{nameof(HowCanWeHelpView)} has returned content");

            return(this.NegotiateContentResult(viewModel));
        }