public async Task <IActionResult> Index(RegisterInterestModel registerInterest)
        {
            if (!ModelState.IsValid)
            {
                registerInterest.ShowRouteQuestion = this.RouteData.Values.ContainsKey("route") == false;

                return(View("Index", registerInterest));
            }

            try
            {
                await _userDataCollection.StoreUserData(new UserData
                {
                    FirstName   = registerInterest.FirstName,
                    LastName    = registerInterest.LastName,
                    Email       = registerInterest.Email,
                    CookieId    = !string.IsNullOrEmpty(HttpContext.Request.Cookies["_ga"]) ? HttpContext.Request.Cookies["_ga"] : "not-available",
                    RouteId     = ((int)registerInterest.Route).ToString(),
                    Consent     = true,
                    IncludeInUR = registerInterest.IncludeInUR
                });
            }
            catch (ValidationException e)
            {
                foreach (var member in e.ValidationResult.MemberNames)
                {
                    ModelState.AddModelError(member.Split('|')[0], member.Split('|')[1]);
                }

                return(View(registerInterest));
            }

            return(RedirectToAction("ThankYouForRegistering"));
        }
コード例 #2
0
        public void Arrange()
        {
            _registerInterestModel = new RegisterInterestModel
            {
                Email             = "*****@*****.**",
                FirstName         = "Test",
                Route             = RouteType.Apprentice,
                LastName          = "test",
                ShowRouteQuestion = false
            };

            _mediator = new Mock <IMediator>();
            _mediator.SetupMockMediator();

            _userDataCollection = new Mock <IUserDataCollection>();

            var headers = new HeaderDictionary(new Dictionary <string, StringValues> {
                { "Referer", ExpectedReferrerUrl }
            });

            _httpContext = new Mock <HttpContext>();
            _httpContext.Setup(x => x.Request.Cookies["_ga"]).Returns(ExpectedCookieId);
            _httpContext.Setup(x => x.Request.Headers).Returns(headers);
            _httpContext.Setup(x => x.Request.Path).Returns("/");

            var mockUrlHelper = new Mock <IUrlHelper>(MockBehavior.Strict);

            mockUrlHelper
            .Setup(m => m.Action(It.IsAny <UrlActionContext>()))
            .Returns(ExpectedDefaultUrl).Verifiable();
            _controller = new RegisterInterestController(_userDataCollection.Object, _mediator.Object)
            {
                Url = mockUrlHelper.Object,
                ControllerContext =
                {
                    HttpContext      = _httpContext.Object,
                    ActionDescriptor = new ControllerActionDescriptor
                    {
                        ControllerName = "register-interest"
                    },
                    RouteData          = new RouteData()
                }
            };
        }