Ejemplo n.º 1
0
        /// <summary>
        /// Validate the model
        /// </summary>
        /// <param name="context">the validation context</param>
        /// <returns></returns>
        public IEnumerable <ValidationResult> Validate(ValidationContext context)
        {
            var templateService          = HostContainer.GetInstance <IWidgetTemplateService>();
            var localizedResourceService = HostContainer.GetInstance <IEzCMSLocalizedResourceService>();

            if (templateService.IsTemplateNameExisted(Id, Name))
            {
                yield return(new ValidationResult(localizedResourceService.T("WidgetTemplate_Message_ExistingName"), new[] { "Name" }));
            }

            var type = Type.GetType(DataType);

            if (type != null)
            {
                var razorValidMessage = EzRazorEngineHelper.ValidateTemplate(Name, FullContent, type);
                if (!string.IsNullOrEmpty(razorValidMessage))
                {
                    yield return(new ValidationResult(string.Format(localizedResourceService.T("WidgetTemplate_Message_FullContentCompileFailure"), razorValidMessage), new[] { "FullContent" }));
                }

                //Generate content from widgets
                var content = WidgetHelper.GetFullTemplate(Content, string.Empty, string.Empty, DataType, Shortcuts);
                razorValidMessage = EzRazorEngineHelper.ValidateTemplate(Name, content, type);
                if (!string.IsNullOrEmpty(razorValidMessage))
                {
                    yield return(new ValidationResult(string.Format(localizedResourceService.T("WidgetTemplate_Message_ContentCompileFailure"), razorValidMessage), new[] { "Content" }));
                }

                razorValidMessage = EzRazorEngineHelper.ValidateTemplate(Name, Script, type);
                if (!string.IsNullOrEmpty(razorValidMessage))
                {
                    yield return(new ValidationResult(string.Format(localizedResourceService.T("WidgetTemplate_Message_ScriptCompileFailure"), razorValidMessage), new[] { "Script" }));
                }

                razorValidMessage = EzRazorEngineHelper.ValidateTemplate(Name, Style, type);
                if (!string.IsNullOrEmpty(razorValidMessage))
                {
                    yield return(new ValidationResult(string.Format(localizedResourceService.T("WidgetTemplate_Message_StyleCompileFailure"), razorValidMessage), new[] { "Style" }));
                }

                if (Shortcuts != null)
                {
                    var widgetValidationMessages = new Dictionary <string, string>();
                    foreach (var widget in Shortcuts)
                    {
                        razorValidMessage = EzRazorEngineHelper.ValidateTemplate(widget.Name, widget.Content, type);
                        if (!string.IsNullOrEmpty(razorValidMessage))
                        {
                            widgetValidationMessages.Add(widget.Name, razorValidMessage);
                        }
                    }

                    if (widgetValidationMessages.Any())
                    {
                        var message = string.Join(FrameworkConstants.BreakLine, widgetValidationMessages.Select(widget => localizedResourceService.TFormat("WidgetTemplate_Message_WidgetCompileFailure", widget.Key, widget.Value)));
                        yield return(new ValidationResult(message, new[] { "Widgets" }));
                    }
                }
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Get full template
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public string GetFullTemplate(WidgetTemplateManageModel model)
 {
     return(WidgetHelper.GetFullTemplate(model.Content, model.Style, model.Script, model.DataType,
                                         model.Shortcuts));
 }
Ejemplo n.º 3
0
        public void Setup()
        {
            var starterKitService = HostContainer.GetInstance <IStarterKitService>();

            #region Page Templates

            // Insert master template
            var master = new PageTemplate
            {
                Name              = "Master",
                Content           = StarterKitHelper.GetEzCMSResource("Master.cshtml", GetTemplateFolder(), ResourceTypeEnums.PageTemplates),
                IsDefaultTemplate = true
            };
            starterKitService.InsertPageTemplate(master);

            #endregion

            #region Page Initialize

            // Insert home page
            var homePage = new Page
            {
                Title                    = "Home",
                Abstract                 = "Home page",
                Content                  = StarterKitHelper.GetEzCMSResource("HomePage.cshtml", GetTemplateFolder(), ResourceTypeEnums.Pages),
                FriendlyUrl              = "home",
                PageTemplateId           = master.Id,
                IsHomePage               = true,
                Status                   = PageEnums.PageStatus.Online,
                IncludeInSiteNavigation  = true,
                DisableNavigationCascade = false,
                RecordOrder              = 1
            };
            starterKitService.InsertPage(homePage);

            var aboutUs = new Page
            {
                Title                    = "About Us",
                Abstract                 = "About Us",
                Content                  = StarterKitHelper.GetEzCMSResource("AboutUs.cshtml", GetTemplateFolder(), ResourceTypeEnums.Pages),
                FriendlyUrl              = "about-us",
                PageTemplateId           = master.Id,
                IsHomePage               = false,
                Status                   = PageEnums.PageStatus.Online,
                IncludeInSiteNavigation  = true,
                DisableNavigationCascade = false,
                RecordOrder              = 2
            };
            starterKitService.InsertPage(aboutUs);

            var contactUs = new Page
            {
                Title                    = "Contact Us",
                Abstract                 = "Contact Us",
                Content                  = StarterKitHelper.GetEzCMSResource("ContactUs.cshtml", GetTemplateFolder(), ResourceTypeEnums.Pages),
                FriendlyUrl              = "contact-us",
                PageTemplateId           = master.Id,
                IsHomePage               = false,
                Status                   = PageEnums.PageStatus.Online,
                IncludeInSiteNavigation  = true,
                DisableNavigationCascade = false,
                RecordOrder              = 3
            };
            starterKitService.InsertPage(contactUs);

            #region Insert other pages

            //Page not found
            var pageNotFound = new Page
            {
                Title                    = "Page Not Found",
                Abstract                 = "Page Not Found",
                Content                  = StarterKitHelper.GetEzCMSResource("PageNotFound.cshtml", GetTemplateFolder(), ResourceTypeEnums.Pages),
                FriendlyUrl              = "Page-Not-Found",
                PageTemplateId           = master.Id,
                IsHomePage               = false,
                Status                   = PageEnums.PageStatus.Online,
                IncludeInSiteNavigation  = false,
                DisableNavigationCascade = true,
                RecordOrder              = 4
            };
            starterKitService.InsertPage(pageNotFound);

            //Page error
            var pageError = new Page
            {
                Title                    = "Page Error",
                Abstract                 = "Page Error",
                Content                  = StarterKitHelper.GetEzCMSResource("PageError.cshtml", GetTemplateFolder(), ResourceTypeEnums.Pages),
                FriendlyUrl              = "Page-Error",
                PageTemplateId           = master.Id,
                IsHomePage               = false,
                Status                   = PageEnums.PageStatus.Online,
                IncludeInSiteNavigation  = false,
                DisableNavigationCascade = true,
                RecordOrder              = 3
            };
            starterKitService.InsertPage(pageError);

            //Site map
            var siteMap = new Page
            {
                Title                    = "Site Map",
                Abstract                 = "Site Map",
                Content                  = StarterKitHelper.GetEzCMSResource("SiteMap.cshtml", GetTemplateFolder(), ResourceTypeEnums.Pages),
                FriendlyUrl              = "Site-Map",
                PageTemplateId           = master.Id,
                IsHomePage               = false,
                Status                   = PageEnums.PageStatus.Online,
                IncludeInSiteNavigation  = false,
                DisableNavigationCascade = true,
                RecordOrder              = 5
            };
            starterKitService.InsertPage(siteMap);

            //Search page
            var pageSearch = new Page
            {
                Title                    = "Search",
                Abstract                 = "Search",
                Content                  = StarterKitHelper.GetEzCMSResource("Search.cshtml", GetTemplateFolder(), ResourceTypeEnums.Pages),
                FriendlyUrl              = "Search",
                PageTemplateId           = master.Id,
                IsHomePage               = false,
                Status                   = PageEnums.PageStatus.Online,
                IncludeInSiteNavigation  = false,
                DisableNavigationCascade = true,
                RecordOrder              = 6
            };
            starterKitService.InsertPage(pageSearch);

            #endregion

            #endregion

            #region Styles

            //Add style
            var templateStyle = new Style
            {
                Name              = "template",
                Content           = StarterKitHelper.GetEzCMSResource("template.css", GetTemplateFolder(), ResourceTypeEnums.Styles),
                IncludeIntoEditor = true
            };
            starterKitService.InsertStyle(templateStyle);

            //Add protected document css
            var protectedDocumentStyle = new Style
            {
                Name    = "protected-document",
                Content = StarterKitHelper.GetEzCMSResource("protected-document.css", GetTemplateFolder(), ResourceTypeEnums.Styles)
            };
            starterKitService.InsertStyle(protectedDocumentStyle);

            //Add bootstrap css
            var bootstrapStyle = new Style
            {
                Name              = "bootstrap",
                Content           = string.Empty,
                CdnUrl            = "/Content/Plugins/Bootstrap/bootstrap.min.css",
                IncludeIntoEditor = true
            };
            starterKitService.InsertStyle(bootstrapStyle);

            #endregion

            #region Scripts

            var contactMe = new Script
            {
                Name    = "contact-me",
                Content = StarterKitHelper.GetEzCMSResource("contact_me.js", GetTemplateFolder(), ResourceTypeEnums.Scripts)
            };
            starterKitService.InsertScript(contactMe);

            var main = new Script
            {
                Name    = "main",
                Content = StarterKitHelper.GetEzCMSResource("main.js", GetTemplateFolder(), ResourceTypeEnums.Scripts)
            };
            starterKitService.InsertScript(main);


            var validation = new Script
            {
                Name    = "jqBootstrapValidation",
                Content = StarterKitHelper.GetEzCMSResource("jqBootstrapValidation.js", GetTemplateFolder(), ResourceTypeEnums.Scripts)
            };
            starterKitService.InsertScript(validation);

            #endregion

            #region Widget Templates

            string dataType          = typeof(List <ITree <NavigationNodeModel> >).AssemblyQualifiedName;
            string navigationContent = StarterKitHelper.GetEzCMSResource("Navigations.Navigations.cshtml", GetTemplateFolder(), ResourceTypeEnums.WidgetTemplates);
            string navigationScript  = StarterKitHelper.GetEzCMSResource("Navigations.Navigations.Script.cshtml",
                                                                         GetTemplateFolder(), ResourceTypeEnums.WidgetTemplates);
            var navigations = new WidgetTemplate
            {
                Name        = "Navigations",
                DataType    = dataType,
                Widget      = "Navigations",
                Content     = navigationContent,
                Script      = navigationScript,
                FullContent = WidgetHelper.GetFullTemplate(navigationContent, string.Empty, navigationScript, dataType, string.Empty)
            };
            starterKitService.InsertWidgetTemplate(navigations);

            #endregion
        }