public ActionResult SupportTicket(UserModel.User user) { if (ModelState.IsValid) { SupportTicket TicketData = new SupportTicket(); TicketData.Email = user.SupportEmail; TicketData.Name = user.SupportName; TicketData.Phone = user.SupportPhone; TicketData.Category = user.SupportCategory; TicketData.Description = user.SupportDescription; TicketData.CreatedTime = DateTimeOffset.Now; if (User.Identity.Name != null) { TicketData.Username = User.Identity.Name; } var PhoneRegex = new Regex(@"\d{7}"); string email = user.SupportEmail; Regex regex = new Regex(@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"); Match match = regex.Match(email); Match phoneMatch = PhoneRegex.Match(user.SupportPhone); if (!match.Success) { //Bad Email ModelState.AddModelError("SupportEmail", "Invalid Email"); } if (user.SupportName.Length < 1) { //Bad Name ModelState.AddModelError("SupportName", "Please provide your name"); } if (!phoneMatch.Success) { //Bad Phone ModelState.AddModelError("SupportPhone", "Invalid phone number"); } else if (user.SupportCategory.Length < 1) { //Bad Category ModelState.AddModelError("SupportCategory", "Please select a ticket category"); } else if (user.SupportDescription.Length < 1) { //Bad description ModelState.AddModelError("SupportDescription", "Please provide a description"); } //Write to DB if all is good if (ModelState.IsValid) { if (user.SubmitSupportTicket(TicketData, User.Identity.Name)) { return RedirectToAction("SupportConfirmation", "User"); } } } return View(user); }