public ActionResult Support(SupportFormViewModel viewModel) { if (!ModelState.IsValid) { return(ViewSupportImpl(viewModel, string.Empty)); } var supportRequestLog = SupportRequestLogModelExtensions.Create(CurrentFirmaSession); viewModel.UpdateModel(supportRequestLog, CurrentFirmaSession); HttpRequestStorage.DatabaseEntities.AllSupportRequestLogs.Add(supportRequestLog); SupportRequestLogModelExtensions.SendMessage(supportRequestLog, Request.UserHostAddress, Request.UserAgent, viewModel.CurrentPageUrl, supportRequestLog.SupportRequestType, HttpRequestStorage.DatabaseEntities, FirmaWebConfiguration.DefaultSupportPersonID); SetMessageForDisplay("Support request sent."); if (CurrentFirmaSession.IsAnonymousUser()) { // This is a rare place in the system where an anonymous user writes to the DB. // If this becomes more commonplace we can work out a more general solution. HttpRequestStorage.DatabaseEntities.SaveChangesWithNoAuditing(CurrentFirmaSession.TenantID); } else { // Logged in user, normal audit trail on save SitkaDbContext.SaveChanges(); } return(new ModalDialogFormJsonResult()); }
private PartialViewResult ViewSupport(SupportRequestTypeEnum?supportRequestTypeEnum, string optionalPrepopulatedDescription) { var currentPageUrl = string.Empty; if (Request.UrlReferrer != null) { currentPageUrl = Request.UrlReferrer.ToString(); } else if (Request.Url != null) { currentPageUrl = Request.Url.ToString(); } var viewModel = new SupportFormViewModel(currentPageUrl, supportRequestTypeEnum); if (!IsCurrentUserAnonymous()) { viewModel.RequestPersonName = CurrentPerson.GetFullNameFirstLast(); viewModel.RequestPersonEmail = CurrentPerson.Email; if (CurrentPerson.Organization != null) { viewModel.RequestPersonOrganization = CurrentPerson.Organization.OrganizationName; } viewModel.RequestPersonPhone = CurrentPerson.Phone; } viewModel.RequestDescription = optionalPrepopulatedDescription; return(ViewSupportImpl(viewModel, string.Empty)); }
private PartialViewResult ViewSupportImpl(SupportFormViewModel viewModel, string successMessage) { var allSupportRequestTypes = SupportRequestType.All.OrderBy(x => x.SupportRequestTypeSortOrder); var supportRequestTypes = allSupportRequestTypes.OrderBy(x => x.SupportRequestTypeSortOrder) .ToSelectListWithEmptyFirstRow(x => x.SupportRequestTypeID.ToString(CultureInfo.InvariantCulture), x => x.GetSubjectLine()); var viewData = new SupportFormViewData(successMessage, IsCurrentUserAnonymous(), supportRequestTypes, allSupportRequestTypes.Select(x => new SupportRequestTypeSimple(x)).ToList()); return(RazorPartialView <SupportForm, SupportFormViewData, SupportFormViewModel>(viewData, viewModel)); }
public ActionResult RequestOrganizationNameChange(SupportFormViewModel viewModel) { if (!ModelState.IsValid) { return(ViewSupportImpl(viewModel, string.Empty)); } var supportRequestLog = SupportRequestLog.Create(CurrentPerson); viewModel.UpdateModel(supportRequestLog, CurrentPerson); HttpRequestStorage.DatabaseEntities.SupportRequestLogs.Add(supportRequestLog); supportRequestLog.SendMessage(Request.UserHostAddress, Request.UserAgent, viewModel.CurrentPageUrl, supportRequestLog.SupportRequestType); SetMessageForDisplay("Support request sent."); return(Redirect(SitkaRoute <OrganizationController> .BuildUrlFromExpression(x => x.Index()))); }
public ActionResult SubmitSupport(SupportFormViewModel details) { if (ModelState.IsValid) { try { var email = details.Email; // Ensure one signature per email address if (signatureService.Validate(email)) { return View(); } // Create signature var signature = new Signature() { Firstname = details.Firstname, Surname = details.Surname, Email = email, Postcode = details.Postcode, ChildsDOB = details.ChildDOB }; // Add signatureService.Add(signature); // Send confirmation email emailService.Send(email, "Thank-you for your support!", "Thank-you for supporting our bid for Roundhay Park Primary School"); // Add to subscribers list if they request more info if(details.MoreInfoConfirmed) { subscriptionService.Add(new Subscription() { Email = email }); emailService.Send(email, "Thank-you for subscribing!", "Thank-you for subscribing to receive more infomation on the progress of our bid! If you would like to unsubscribe please let us know via email."); } return PartialView("_Success"); } catch (Exception ex) { throw; } } var modelStateErrors = ModelState.Values.SelectMany(v => v.Errors); return View(); }
public ActionResult Support(SupportFormViewModel viewModel) { if (!ModelState.IsValid) { return(ViewSupportImpl(viewModel, string.Empty)); } var supportRequestLog = SupportRequestLog.Create(CurrentPerson); viewModel.UpdateModel(supportRequestLog, CurrentPerson); HttpRequestStorage.DatabaseEntities.SupportRequestLogs.Add(supportRequestLog); supportRequestLog.SendMessage(Request.UserHostAddress, Request.UserAgent, viewModel.CurrentPageUrl, supportRequestLog.SupportRequestType); SetMessageForDisplay("Support request sent."); return(Redirect(viewModel.ReturnUrl)); }
private ViewResult ViewSupportImpl(SupportFormViewModel viewModel, string successMessage) { var allSupportRequestTypes = SupportRequestType.All.OrderBy(x => x.SupportRequestTypeSortOrder).ToList(); var supportRequestTypes = allSupportRequestTypes.OrderBy(x => x.SupportRequestTypeSortOrder) .ToSelectListWithEmptyFirstRow(x => x.SupportRequestTypeID.ToString(CultureInfo.InvariantCulture), x => x.SupportRequestTypeDisplayName); var neptunePage = NeptunePage.GetNeptunePageByPageType(NeptunePageType.RequestSupport); var cancelUrl = Request.UrlReferrer != null?Request.UrlReferrer.ToString() : SitkaRoute <HomeController> .BuildUrlFromExpression(x => x.Index()); viewModel.ReturnUrl = cancelUrl; // ReSharper disable once ConditionIsAlwaysTrueOrFalse var viewData = new SupportFormViewData(CurrentPerson, neptunePage, successMessage, IsCurrentUserAnonymous(), supportRequestTypes, allSupportRequestTypes.Select(x => new SupportRequestTypeSimple(x)).ToList(), cancelUrl); return(RazorView <SupportForm, SupportFormViewData, SupportFormViewModel>(viewData, viewModel)); }
public ViewResult RequestOrganizationNameChange() { var currentPageUrl = string.Empty; if (Request.UrlReferrer != null) { currentPageUrl = Request.UrlReferrer.ToString(); } else if (Request.Url != null) { currentPageUrl = Request.Url.ToString(); } var viewModel = new SupportFormViewModel(currentPageUrl, SupportRequestTypeEnum.RequestOrganizationNameChange); if (!IsCurrentUserAnonymous()) { viewModel.RequestPersonName = CurrentPerson.GetFullNameFirstLast(); viewModel.RequestPersonEmail = CurrentPerson.Email; if (CurrentPerson.Organization != null) { viewModel.RequestPersonOrganization = CurrentPerson.Organization.OrganizationName; } viewModel.RequestPersonPhone = CurrentPerson.Phone; } viewModel.RequestDescription = string.Empty; var allSupportRequestTypes = SupportRequestType.All.OrderBy(x => x.SupportRequestTypeSortOrder).ToList(); var supportRequestTypes = allSupportRequestTypes.OrderBy(x => x.SupportRequestTypeSortOrder) .ToSelectListWithEmptyFirstRow(x => x.SupportRequestTypeID.ToString(CultureInfo.InvariantCulture), x => x.SupportRequestTypeDisplayName); var neptunePage = NeptunePage.GetNeptunePageByPageType(NeptunePageType.RequestSupport); var cancelUrl = Request.UrlReferrer != null?Request.UrlReferrer.ToString() : SitkaRoute <HomeController> .BuildUrlFromExpression(x => x.Index()); viewModel.ReturnUrl = cancelUrl; // ReSharper disable once ConditionIsAlwaysTrueOrFalse var viewData = new SupportFormViewData(CurrentPerson, neptunePage, string.Empty, IsCurrentUserAnonymous(), supportRequestTypes, allSupportRequestTypes.Select(x => new SupportRequestTypeSimple(x)).ToList(), cancelUrl); return(RazorView <Views.Help.RequestOrganizationNameChange, SupportFormViewData, SupportFormViewModel>(viewData, viewModel)); }
public ActionResult RequestOrganizationNameChange(SupportFormViewModel viewModel) { return(Support(viewModel)); }
public ActionResult ProposalFeedback(SupportFormViewModel viewModel) { return(Support(viewModel)); }
public ActionResult MissingFundingSource(SupportFormViewModel viewModel) { return(Support(viewModel)); }
public ActionResult MissingOrganization(SupportFormViewModel viewModel) { return(Support(viewModel)); }
public ActionResult RequestToChangePrivileges(SupportFormViewModel viewModel) { return(Support(viewModel)); }
public ActionResult RequestProjectPrimaryContactChange(ProjectPrimaryKey projectPrimaryKey, SupportFormViewModel viewModel) { if (!ModelState.IsValid) { return(ViewSupportImpl(viewModel, string.Empty)); } var supportRequestLog = SupportRequestLog.Create(CurrentPerson); viewModel.UpdateModel(supportRequestLog, CurrentPerson); HttpRequestStorage.DatabaseEntities.SupportRequestLogs.Add(supportRequestLog); supportRequestLog.SendMessage(Request.UserHostAddress, Request.UserAgent, viewModel.CurrentPageUrl, supportRequestLog.SupportRequestType, projectPrimaryKey.EntityObject); SetMessageForDisplay("Support request sent."); return(new ModalDialogFormJsonResult()); }
public ActionResult RequestOrganizationAddedToKeystone(SupportFormViewModel viewModel) { return(Support(viewModel)); }
public ActionResult UpdateFeedback(SupportFormViewModel viewModel) { return(Support(viewModel)); }
public ActionResult MissingGrantAllocation(SupportFormViewModel viewModel) { return(Support(viewModel)); }