public ActionResult PublicSubmit(Ticket ticket, string[] avDates, string[] emailCCs, HttpPostedFileBase uploadAttachment, bool captchaValid, string appName, string passedSubject, string availableDatesInput, string emailCCsInput) { if(!captchaValid) { ModelState.AddModelError("Captcha", "Captcha values are not valid."); } if(string.IsNullOrEmpty(ticket.FromEmail) || ticket.FromEmail.Trim() == string.Empty) { ModelState.AddModelError("Ticket.FromEmail", "Your email address is required."); } else { var regExVal = new Regex(StaticValues.EmailErrorRegEx); if (!regExVal.IsMatch(ticket.FromEmail.ToLower())) { ModelState.AddModelError("Ticket.FromEmail", "A valid email address is required."); } } _ticketControllerService.CommonSubmitValidationChecks(ModelState, ticket, avDates, emailCCs, availableDatesInput, emailCCsInput); _ticketControllerService.LoadFileContents(ticket, uploadAttachment); MvcValidationAdapter.TransferValidationMessagesTo(ModelState, ticket.ValidationResults()); if (ModelState.IsValid) { try { //_emailProvider.SendHelpRequest(ticket, true, GetHelpEmail(ticket)); _ticketControllerService.SendHelpRequest(ticket, true, _emailProvider); Message = StaticValues.STR_HelpTicketSuccessfullySent; return this.RedirectToAction<HomeController>(a => a.Index(appName, passedSubject)); } catch (Exception ex) { ModelState.AddModelError("Exception", "Application Exception sending email: " + ex.Message); var viewModel = TicketViewModel.Create(Repository.OfType<Application>(), CurrentUser, appName, passedSubject); viewModel.Ticket = ticket; return View(viewModel); } } else { var viewModel = TicketViewModel.Create(Repository.OfType<Application>(), CurrentUser, appName, passedSubject); viewModel.Ticket = ticket; return View(viewModel); } }
public ActionResult Submit(Ticket ticket, string[] avDates, string[] emailCCs, HttpPostedFileBase uploadAttachment, string appName, string passedSubject,string availableDatesInput, string emailCCsInput) { bool foundEmail = false; var useKerbEmail = false; if (CurrentUser != null && CurrentUser.Identity != null) { //if (CurrentUser.IsInRole(RoleNames.User) || CurrentUser.IsInRole(RoleNames.Admin)) //{ var user = Repository.OfType<User>() .Queryable .Where(a => a.LoginId == CurrentUser.Identity.Name) .FirstOrDefault(); if (user != null) { if (!string.IsNullOrEmpty(user.Email)) { foundEmail = true; ticket.User = Repository .OfType<User>() .Queryable .Where(a => a.LoginId == CurrentUser.Identity.Name) .Single(); } } //} if (!foundEmail) { var kerbUser = _ticketControllerService.FindKerbUser(CurrentUser.Identity.Name); //DirectoryServices.FindUser(CurrentUser.Identity.Name); if (kerbUser != null) { if (!string.IsNullOrEmpty(kerbUser.EmailAddress)) { foundEmail = true; useKerbEmail = true; ticket.FromEmail = kerbUser.EmailAddress; } } } } if (!foundEmail) { Message = "Logged in email not found. Use this public submit instead."; return this.RedirectToAction(a => a.PublicSubmit(appName, passedSubject)); } _ticketControllerService.CommonSubmitValidationChecks(ModelState, ticket, avDates, emailCCs, availableDatesInput, emailCCsInput); _ticketControllerService.LoadFileContents(ticket, uploadAttachment); MvcValidationAdapter.TransferValidationMessagesTo(ModelState, ticket.ValidationResults()); if(ModelState.IsValid) { try { //_emailProvider.SendHelpRequest(ticket, useKerbEmail, GetHelpEmail(ticket)); _ticketControllerService.SendHelpRequest(ticket, useKerbEmail, _emailProvider); Message = StaticValues.STR_HelpTicketSuccessfullySent;//"Help Ticket successfully sent"; return this.RedirectToAction<HomeController>(a => a.Index(appName, passedSubject)); } catch (Exception ex) { ModelState.AddModelError("Exception", "Application Exception sending email: " + ex.Message); //var viewModel = TicketViewModel.Create(Repository, CurrentUser, appName); var viewModel = TicketViewModel.Create(Repository.OfType<Application>(), CurrentUser, appName, passedSubject); viewModel.Ticket = ticket; return View(viewModel); } } else { //var viewModel = TicketViewModel.Create(Repository, CurrentUser, appName); var viewModel = TicketViewModel.Create(Repository.OfType<Application>(), CurrentUser, appName, passedSubject); viewModel.Ticket = ticket; var test = View(viewModel); return View(viewModel); } }