public ViewResult RequestSupport() { var currentPageUrl = string.Empty; if (Request.UrlReferrer != null) { currentPageUrl = Request.UrlReferrer.ToString(); } else if (Request.Url != null) { currentPageUrl = Request.Url.ToString(); } var viewModel = new RequestSupportViewModel(currentPageUrl, null); 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 = ""; return(ViewRequestSupport(viewModel)); }
private ViewResult ViewRequestSupport(RequestSupportViewModel viewModel) { var allSupportRequestTypes = SupportRequestType.All.OrderBy(x => x.SupportRequestTypeSortOrder); var supportRequestTypeSimples = allSupportRequestTypes.Select(x => new SupportRequestTypeSimple(x)).ToList(); var cancelUrl = Request.UrlReferrer != null?Request.UrlReferrer.ToString() : SitkaRoute <HomeController> .BuildUrlFromExpression(x => x.Index()); var selectListWithEmptyFirstRow = allSupportRequestTypes.ToSelectListWithEmptyFirstRow(x => x.SupportRequestTypeID.ToString(), x => x.GetSubjectLine()); var supportFormViewData = new SupportFormViewData(string.Empty, IsCurrentUserAnonymous(), selectListWithEmptyFirstRow, supportRequestTypeSimples); var viewData = new RequestSupportViewData(CurrentFirmaSession, supportFormViewData, cancelUrl); return(RazorView <RequestSupport, RequestSupportViewData, RequestSupportViewModel>(viewData, viewModel)); }
public ActionResult RequestSupport(RequestSupportViewModel viewModel) { if (!ModelState.IsValid) { return(ViewRequestSupport(viewModel)); } 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("Message sent. Thank you for contacting us."); var returnUrl = viewModel.ReturnUrl ?? SitkaRoute <HomeController> .BuildUrlFromExpression(x => x.Index()); return(Redirect(returnUrl)); }