public ActionResult Register(AccountRegisterInputModel input, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                var result = this.accountAdapter.RegisterUser(new User()
                {
                    Username = input.UserName,
                    Email = input.Email,
                    FirstName = input.FirstName,
                    LastName = input.LastName
                }, input.Password);

                if (result.StatusCode == 200)
                {
                    FormsAuthentication.SetAuthCookie(result.Result.Username, false);

                    // redirect the user
                    if (String.IsNullOrEmpty(returnUrl))
                        return Redirect("/");
                    else
                        return Redirect(returnUrl);
                }

                var error = result.Errors.First();
                ModelState.AddModelError(error.MemberNames.First(), error.ErrorMessage);
            }
            return View(new AccountRegisterModel() { Input = input });
        }
        public ActionResult Register(AccountRegisterInputModel input, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                var result = this.accountAdapter.RegisterUser(new User()
                {
                    Username = input.UserName,
                    Email = input.Email,
                    FirstName = input.FirstName,
                    LastName = input.LastName
                }, input.Password);

                if (result.StatusCode == 200)
                {
                    CustomAuthentication.SetAuthCookie(result.Result.Username, result.Result.UserId, false);

                    // redirect the user
                    if (String.IsNullOrEmpty(returnUrl))
                        return Redirect("/");
                    else
                        return Redirect(returnUrl);
                }

                HandleErrors(result);
            }

            return View(new AccountRegisterModel() { Input = input });
        }