public ActionResult Create(CreateNewUser newUser)
 {
     try
     {
         if (ModelState.IsValid)
         {
             if (CheckValidateEmail(newUser.user.Email))
             {
                 if (!ViewModels.CheckForUser(newUser.user.Email))
                 {
                     if (CheckComplexity(newUser.user.Password))
                     {
                         newUser.user.Password = Encrypter.ComputeHash(newUser.user.Password, null);
                         Users myUser = new Users();
                         myUser.Email    = newUser.user.Email;
                         myUser.Password = newUser.user.Password;
                         ViewModels.CreateUser(myUser);
                     }
                     else
                     {
                         newUser.passwordError   = true;
                         newUser.emailError      = false;
                         newUser.blankFieldError = false;
                         newUser.user.Email      = null;
                         newUser.user.Password   = null;
                         return(View(newUser));
                     }
                 }
                 else
                 {
                     newUser.emailError      = true;
                     newUser.passwordError   = false;
                     newUser.blankFieldError = false;
                     newUser.user.Email      = null;
                     newUser.user.Password   = null;
                     return(View(newUser));
                 }
             }
             else
             {
                 newUser.emailError      = true;
                 newUser.passwordError   = false;
                 newUser.blankFieldError = false;
                 newUser.user.Email      = null;
                 newUser.user.Password   = null;
                 return(View(newUser));
             }
         }
         return(RedirectToAction("Delete"));
     }
     catch (Exception e)
     {
         DataLink.LogError(e);
         throw;
     }
 }
        public ActionResult Login(Login login)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    //A user has been returned. Pull out the email that is specified. Has the user's password and compare it to the hash in the database.
                    if (login.user.Email != null && login.user.Password != null)
                    {
                        if (ViewModels.CheckForUser(login.user.Email))
                        {
                            //Get the information for the user they are trying to login as
                            Users u = ViewModels.GetUser(login.user.Email);

                            //Check to the entered password against the saved password
                            if (Encrypter.VerifyHash(login.user.Password, u.Password))
                            {
                                if (FormsAuthentication.FormsCookieName != null)
                                {
                                    FormsAuthentication.SignOut();
                                }
                                //TODO: Figure out how to set the validation for a user
                                FormsAuthentication.SetAuthCookie(login.user.Email, false);
                                return(RedirectToAction("ReportHome"));
                            }
                            else
                            {
                                //It failed so return the view with the user input
                                login.Error         = true;
                                login.user.Password = null;
                                return(View(login));
                            }
                        }
                        else
                        {
                            login.Error         = true;
                            login.user.Email    = null;
                            login.user.Password = null;
                            return(View(login));
                        }
                    }
                }
                login.Error         = true;
                login.user.Email    = null;
                login.user.Password = null;
                return(View(login));
            }
            catch (Exception e)
            {
                DataLink.LogError(e);
                throw;
            }
        }