/// <inheritDoc/> public virtual FormViewModel GetViewModel() { if (this.FormId == Guid.Empty) { return(null); } var viewModel = new FormViewModel() { ViewMode = this.ViewMode, CssClass = this.CssClass, UseAjaxSubmit = this.UseAjaxSubmit, FormId = this.FormId.ToString("D"), IsMultiStep = this.IsMultiStep, FormCollection = this.FormCollection }; if (this.FormData != null && this.AllowRenderForm()) { viewModel.FormRules = this.GetFormRulesViewModel(this.FormData); if (viewModel.UseAjaxSubmit) { string baseUrl; if (this.AjaxSubmitUrl.IsNullOrEmpty()) { var currentNode = SiteMapBase.GetCurrentNode(); baseUrl = currentNode != null ? currentNode.Url + "/AjaxSubmit" : string.Empty; } else { baseUrl = this.AjaxSubmitUrl; } viewModel.AjaxSubmitUrl = baseUrl.StartsWith("~/") ? RouteHelper.ResolveUrl(baseUrl, UrlResolveOptions.Rooted) : baseUrl; viewModel.SuccessMessage = this.GetSubmitMessage(SubmitStatus.Success); if (this.NeedsRedirect) { viewModel.RedirectUrl = this.GetRedirectPageUrl(); if (viewModel.RedirectUrl.StartsWith("~/")) { viewModel.RedirectUrl = RouteHelper.ResolveUrl(viewModel.RedirectUrl, UrlResolveOptions.Rooted); } } } } else { viewModel.Error = Res.Get <FormsResources>().TheSpecifiedFormNoLongerExists; } return(viewModel); }
/// <summary> /// Gets a collection of <see cref="CacheDependencyNotifiedObject"/>. /// The <see cref="CacheDependencyNotifiedObject"/> represents a key for which cached items could be subscribed for /// notification. /// When notified, all cached objects with dependency on the provided keys will expire. /// </summary> /// <param name="viewModel">View model that will be used for displaying the data.</param> /// <returns> /// The <see cref="IList"/>. /// </returns> public virtual IList <CacheDependencyKey> GetKeysOfDependentObjects(FormViewModel viewModel) { if (this.ContentType != null) { var contentResolvedType = this.ContentType; var result = new List <CacheDependencyKey>(1); if (viewModel != null && !string.IsNullOrWhiteSpace(viewModel.FormId)) { result.AddRange(OutputCacheDependencyHelper.GetPublishedContentCacheDependencyKeys(contentResolvedType, viewModel.FormId)); } return(result); } else { return(new List <CacheDependencyKey>(0)); } }
/// <summary> /// Gets a collection of <see cref="CacheDependencyNotifiedObject"/>. /// The <see cref="CacheDependencyNotifiedObject"/> represents a key for which cached items could be subscribed for /// notification. /// When notified, all cached objects with dependency on the provided keys will expire. /// </summary> /// <param name="viewModel">View model that will be used for displaying the data.</param> /// <returns> /// The <see cref="IList"/>. /// </returns> public virtual IList <CacheDependencyKey> GetKeysOfDependentObjects(FormViewModel viewModel) { if (this.ContentType != null) { var contentResolvedType = this.ContentType; var result = new List <CacheDependencyKey>(1); if (viewModel != null && !string.IsNullOrWhiteSpace(viewModel.FormId)) { result.Add(new CacheDependencyKey { Key = viewModel.FormId, Type = contentResolvedType }); } return(result); } else { return(new List <CacheDependencyKey>(0)); } }
/// <inheritDoc/> public virtual FormViewModel GetViewModel() { if (this.FormId == Guid.Empty) { return null; } var viewModel = new FormViewModel() { ViewMode = this.ViewMode, CssClass = this.CssClass, UseAjaxSubmit = this.UseAjaxSubmit }; var form = FormsManager.GetManager().GetForms().FirstOrDefault(f => f.Id == this.FormId && f.Status == ContentLifecycleStatus.Live && f.Visible); if (form != null) { if (viewModel.UseAjaxSubmit) { string baseUrl = this.AjaxSubmitUrl.IsNullOrEmpty() ? "~/Forms/Submit" : this.AjaxSubmitUrl; if (baseUrl.StartsWith("~/")) { baseUrl = RouteHelper.ResolveUrl(baseUrl, UrlResolveOptions.Rooted); } var separator = baseUrl.Contains('?') ? '&' : '?'; viewModel.AjaxSubmitUrl = baseUrl + separator + "name={0}&formId={1}¤tMode=create".Arrange(form.Name, this.FormId); viewModel.SuccessMessage = this.GetSubmitMessage(SubmitStatus.Success); if (this.NeedsRedirect) { viewModel.RedirectUrl = this.GetRedirectPageUrl(); if (viewModel.RedirectUrl.StartsWith("~/")) viewModel.RedirectUrl = RouteHelper.ResolveUrl(viewModel.RedirectUrl, UrlResolveOptions.Rooted); } } } else { viewModel.Error = Res.Get<FormsResources>().TheSpecifiedFormNoLongerExists; } return viewModel; }
/// <inheritDoc/> public virtual FormViewModel GetViewModel() { if (this.FormId == Guid.Empty) { return null; } var viewModel = new FormViewModel() { ViewMode = this.ViewMode, CssClass = this.CssClass, UseAjaxSubmit = this.UseAjaxSubmit }; var form = FormsManager.GetManager().GetForms().FirstOrDefault(f => f.Id == this.FormId && f.Status == ContentLifecycleStatus.Live && f.Visible); if (form != null) { if (viewModel.UseAjaxSubmit) { string baseUrl; if (this.AjaxSubmitUrl.IsNullOrEmpty()) { var currentNode = SiteMapBase.GetCurrentNode(); baseUrl = currentNode != null ? currentNode.Url + "/AjaxSubmit" : ""; } else { baseUrl = this.AjaxSubmitUrl; } viewModel.AjaxSubmitUrl = baseUrl.StartsWith("~/") ? RouteHelper.ResolveUrl(baseUrl, UrlResolveOptions.Rooted) : baseUrl; viewModel.SuccessMessage = this.GetSubmitMessage(SubmitStatus.Success); if (this.NeedsRedirect) { viewModel.RedirectUrl = this.GetRedirectPageUrl(); if (viewModel.RedirectUrl.StartsWith("~/")) viewModel.RedirectUrl = RouteHelper.ResolveUrl(viewModel.RedirectUrl, UrlResolveOptions.Rooted); } } } else { viewModel.Error = Res.Get<FormsResources>().TheSpecifiedFormNoLongerExists; } return viewModel; }
/// <inheritDoc/> public virtual FormViewModel GetViewModel() { if (this.FormId == Guid.Empty) { return(null); } var marketoSettings = new MarketoSettings() { SyncFormFieldsToLeadFields = this.GetSyncFormFieldsToLeadFields(this.FormData), DoSpecificWebCalls = this.GetDoSpecificWebCalls(this.FormData) }; var jsonSerializerSettings = new JsonSerializerSettings() { ContractResolver = new CamelCasePropertyNamesContractResolver() }; var viewModel = new FormViewModel() { ViewMode = this.ViewMode, CssClass = this.CssClass, UseAjaxSubmit = this.UseAjaxSubmit, FormId = this.FormId.ToString("D"), IsMultiStep = this.IsMultiStep, FormCollection = this.FormCollection, MarketoSettings = JsonConvert.SerializeObject(marketoSettings, Formatting.None, jsonSerializerSettings) }; if (this.FormData != null && this.AllowRenderForm()) { viewModel.FormRules = this.GetFormRulesViewModel(this.FormData); if (viewModel.UseAjaxSubmit) { string baseUrl; if (this.AjaxSubmitUrl.IsNullOrEmpty()) { var currentNode = SiteMapBase.GetCurrentNode(); baseUrl = currentNode != null ? currentNode.Url + "/AjaxSubmit" : string.Empty; } else { baseUrl = this.AjaxSubmitUrl; } viewModel.AjaxSubmitUrl = baseUrl.StartsWith("~/") ? RouteHelper.ResolveUrl(baseUrl, UrlResolveOptions.Rooted) : baseUrl; viewModel.SuccessMessage = this.GetSubmitMessage(SubmitStatus.Success); if (this.NeedsRedirect) { viewModel.RedirectUrl = this.GetRedirectPageUrl(); if (viewModel.RedirectUrl.StartsWith("~/")) { viewModel.RedirectUrl = RouteHelper.ResolveUrl(viewModel.RedirectUrl, UrlResolveOptions.Rooted); } } } } else { viewModel.Error = Res.Get <FormsResources>().TheSpecifiedFormNoLongerExists; } return(viewModel); }
/// <inheritDoc/> public virtual FormViewModel GetViewModel() { if (this.FormId == Guid.Empty) { return null; } var viewModel = new FormViewModel() { ViewMode = this.ViewMode, CssClass = this.CssClass, UseAjaxSubmit = this.UseAjaxSubmit, FormId = this.FormId.ToString("D") }; if (this.FormData != null && this.AllowRenderForm()) { if (viewModel.UseAjaxSubmit) { string baseUrl; if (this.AjaxSubmitUrl.IsNullOrEmpty()) { var currentNode = SiteMapBase.GetCurrentNode(); baseUrl = currentNode != null ? currentNode.Url + "/AjaxSubmit" : string.Empty; } else { baseUrl = this.AjaxSubmitUrl; } viewModel.AjaxSubmitUrl = baseUrl.StartsWith("~/") ? RouteHelper.ResolveUrl(baseUrl, UrlResolveOptions.Rooted) : baseUrl; viewModel.SuccessMessage = this.GetSubmitMessage(SubmitStatus.Success); if (this.NeedsRedirect) { viewModel.RedirectUrl = this.GetRedirectPageUrl(); if (viewModel.RedirectUrl.StartsWith("~/")) viewModel.RedirectUrl = RouteHelper.ResolveUrl(viewModel.RedirectUrl, UrlResolveOptions.Rooted); } } } else { viewModel.Error = Res.Get<FormsResources>().TheSpecifiedFormNoLongerExists; } return viewModel; }