Пример #1
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,
                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);
        }
Пример #2
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.AddRange(OutputCacheDependencyHelper.GetPublishedContentCacheDependencyKeys(contentResolvedType, viewModel.FormId));
                }

                return(result);
            }
            else
            {
                return(new List <CacheDependencyKey>(0));
            }
        }
Пример #3
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));
            }
        }
Пример #4
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}&currentMode=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;
        }
Пример #5
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;
                    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;
        }
Пример #6
0
        /// <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);
        }
Пример #7
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,
                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;
        }