Example #1
0
        public ActionResult CreateAccount(AuthCreateAccountForm form, string returnUrl)
        {
            Debug.WriteLine(string.Format("POST: Auth Controller: Create Account"));

            #region Check if Inputs are Valid
            if (!DB_users.ValidateUsername(form.Username))
            {
                ModelState.AddModelError("Username", "Username is invalid");
            }

            if (!DB_users.ValidateEmail(form.Email))
            {
                ModelState.AddModelError("Email", "Email is invalid");
            }

            //if (!DB_users.ValidatePassword(form.Password))
            //	ModelState.AddModelError("Password", "Password is invalid");

            if (!ModelState.IsValid)
            {
                return(View(form));
            }
            #endregion

            #region Check if Inputs have been Taken
            if (Database.Session.Query <DB_users>().FirstOrDefault(u => u.username == form.Username) != null)
            {
                ModelState.AddModelError("Username", "Username has already been taken");
            }

            //if (Database.Session.Query<DB_users>().FirstOrDefault(u => u.email == form.Email) != null)
            //    ModelState.AddModelError("Email", "Email has already been taken");

            if (!ModelState.IsValid)
            {
                return(View(form));
            }
            #endregion

            #region Create the Account and Login
            DB_users newUser = new DB_users();
            newUser.SetUsername(form.Username);
            newUser.SetEmail(form.Email);
            newUser.SetPassword(form.Password);
            Database.Session.Save(newUser);

            FormsAuthentication.SetAuthCookie(newUser.username, true);
            #endregion

            if (!string.IsNullOrWhiteSpace(returnUrl))
            {
                return(Redirect(returnUrl));
            }

            return(RedirectToRoute("home"));
        }