public ActionResult SavePersonalInfo(UserModel.User user) { if (ModelState.IsValid) { var UpdateEmail = false; string email = user.BillingEmail; var UserCurrentEmail = user.GetCurrentEmail(User.Identity.Name); var UserCurrentCompany = user.GetCompany(User.Identity.Name); var EnteredEmailValid = user.IsEmailValid(email); var regexItem = new Regex(@"\d"); Regex regex = new Regex(@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"); Match match = regex.Match(email); if (!match.Success) { //Bad Email ModelState.AddModelError("BillingEmail", "Invalid Email"); } else if (EnteredEmailValid && UserCurrentEmail != email) { //Email Taken ModelState.AddModelError("BillingEmail", "Email in use on another account"); TempData["ViewData"] = ViewData; } else { UpdateEmail = true; } if (user.BillingName.Length < 5) { //Bad Username ModelState.AddModelError("BillingName", "Username must be a least 5 characters in length"); } else if (user.DoesUsernameExist(user.BillingName) && user.BillingName != User.Identity.Name) { //Username already exists ModelState.AddModelError("BillingName", "Username is not available"); } else if (user.Company.Length < 1) { //No company entered ModelState.AddModelError("Company", "Company name is not valid"); } else if (UpdateEmail) { if (EnteredEmailValid && UserCurrentEmail == email) { //Same email } else { //Update email var emailUpdateStatus = user.UpdateEmail(email, User.Identity.Name); if (emailUpdateStatus == BusinessEntities.EmailUpdateStatus.Error) { //error view return RedirectToAction("Error", "User"); } } //Update Username if (user.BillingName != User.Identity.Name) { var userEmail = user.GetCurrentEmail(User.Identity.Name); if (user.UpdateUsername(user.BillingName, User.Identity.Name)) { //Authentication HttpCookie userNameCookie = new HttpCookie("QueueViewUserName"); DateTime now = DateTime.Now; userNameCookie.Value = User.Identity.Name; userNameCookie.Expires = now.AddDays(-1D); Response.Cookies.Add(userNameCookie); FormsAuthentication.SignOut(); FormsAuthentication.SetAuthCookie(user.BillingName, false); } else { //error view return RedirectToAction("Error", "User"); } } if (UserCurrentCompany != user.Company) { if (!user.UpdateCompany(user.Company, User.Identity.Name)) { //error view return RedirectToAction("Error", "User"); } } } } TempData["ViewData"] = ViewData; return RedirectToAction("AccountDashboard", "User", new {ADID = "PersonalInfo"}); }