/// <summary> /// Creates a new model. /// </summary> /// <param name="loadRegionTypes">If the region types should be loaded</param> /// <param name="loadTemplates">If the templates should be loaded</param> internal PageEditModel(bool loadRegionTypes = true, bool loadTemplates = true) { Template = new PageTemplate() { Preview = new HtmlString( "<table class=\"template\">" + "<tr><td></td></tr>" + "</table>" ) }; Regions = new List<RegionTemplate>(); RegionTypes = new List<dynamic>(); if (loadRegionTypes) { ExtensionManager.Current.GetByExtensionType(ExtensionType.Region).OrderBy(e => e.Metadata.Name).Each((i, r) => RegionTypes.Add(new { Name = ExtensionManager.Current.GetNameByType(r.Value.GetType().FullName), Type = r.Value.GetType().FullName })); RegionTypes.Insert(0, new { Name = "", Type = "" }); } if (loadTemplates) { Templates = PageTemplate.GetFields("pagetemplate_id, pagetemplate_name, pagetemplate_type", "pagetemplate_site_template = 0", new Data.Params() { OrderBy = "pagetemplate_name" }); } }
/// <summary> /// Creates a new site tree model for the given namespace. /// </summary> /// <param name="id">Namespace id</param> public SiteTreeEditModel(Guid namespaceId) { // Get the namespaces using (var db = new DataContext()) { var ns = db.Namespaces.OrderBy(n => n.Name).ToList() ; if (namespaceId != Guid.Empty) Namespaces = new SelectList(ns, "Id", "Name", namespaceId) ; Namespaces = new SelectList(ns, "Id", "Name") ; } // Get the available region types RegionTypes = new List<dynamic>() ; ExtensionManager.Extensions.Where(e => e.ExtensionType == ExtensionType.Region).OrderBy(e => e.Name).Each((i, r) => RegionTypes.Add(new { Name = r.Name, Type = r.Type.ToString() })) ; RegionTypes.Insert(0, new { Name = "", Type = "" }) ; // Initialize the new site Id = Guid.NewGuid() ; NamespaceId = namespaceId ; Template = new PageTemplate() { Id = Id, Name = Id.ToString(), IsSiteTemplate = true } ; Regions = Template.RegionTemplates ; }
/// <summary> /// Gets the raw string (xml) from the broker db by URL /// </summary> /// <param name="Url">URL of the page</param> /// <returns>String with page xml or empty string if no page was found</returns> public string GetContentByUrl(string Url) { Page page = new Page(); page.Title = Randomizer.AnyString(15); page.Id = Randomizer.AnyUri(64); page.Filename = Randomizer.AnySafeString(8) + ".html"; PageTemplate pt = new PageTemplate(); pt.Title = Randomizer.AnyString(20); Field ptfieldView = new Field(); ptfieldView.Name = "view"; ptfieldView.Values.Add("Standard"); pt.MetadataFields = new FieldSet(); pt.MetadataFields.Add(ptfieldView.Name, ptfieldView); page.PageTemplate = pt; page.ComponentPresentations = new List<ComponentPresentation>(); string cpString = ComponentPresentationProvider.GetContent(""); page.ComponentPresentations.Add(SerializerService.Deserialize<ComponentPresentation>(cpString)); FieldSet metadataFields = new FieldSet(); page.MetadataFields = metadataFields; return SerializerService.Serialize<Page>(page); }
/// <summary> /// Gets the raw string (xml) from the broker db by URL /// </summary> /// <param name="Url">URL of the page</param> /// <returns>String with page xml or empty string if no page was found</returns> public string GetContentByUrl(string Url) { Page page = new Page(); page.Title = Randomizer.AnyString(15); page.Id = Randomizer.AnyUri(64); page.Filename = Randomizer.AnySafeString(8) + ".html"; PageTemplate pt = new PageTemplate(); pt.Title = Randomizer.AnyString(20); Field ptfieldView = new Field(); ptfieldView.Name = "view"; ptfieldView.Values.Add("Standard"); pt.MetadataFields = new FieldSet(); pt.MetadataFields.Add(ptfieldView.Name, ptfieldView); page.PageTemplate = pt; Schema schema = new Schema(); schema.Title = Randomizer.AnyString(10); Component component = new Component(); component.Title = Randomizer.AnyString(30); component.Id = Randomizer.AnyUri(16); component.Schema = schema; Field field1 = Randomizer.AnyTextField(6, 120, true); Field field2 = Randomizer.AnyTextField(8, 40, false); FieldSet fieldSet = new FieldSet(); fieldSet.Add(field1.Name, field1); fieldSet.Add(field2.Name, field2); component.Fields = fieldSet; ComponentTemplate ct = new ComponentTemplate(); ct.Title = Randomizer.AnyString(20); Field fieldView = new Field(); fieldView.Name = "view"; fieldView.Values.Add("DefaultComponentView"); ct.MetadataFields = new FieldSet(); ct.MetadataFields.Add(fieldView.Name, fieldView); ComponentPresentation cp = new ComponentPresentation(); cp.Component = component; cp.ComponentTemplate = ct; page.ComponentPresentations = new List<ComponentPresentation>(); page.ComponentPresentations.Add(cp); FieldSet metadataFields = new FieldSet(); page.MetadataFields = metadataFields; var serializer = new XmlSerializer(typeof(Page)); StringBuilder builder = new StringBuilder(); StringWriter writer = new StringWriter(builder); //XmlTextWriter writer = new XmlTextWriter(page.Filename, Encoding.UTF8); //serializer.Serialize(writer, page); serializer.Serialize(writer, page); string pageAsString = builder.ToString(); return pageAsString; }
/// <summary> /// Default constructor, creates a new model. /// </summary> public PageEditModel() { Template = new PageTemplate() ; Regions = new List<RegionTemplate>() ; RegionTypes = new List<dynamic>() ; ExtensionManager.Regions.OrderBy(r => r.Name).Each((i, r) => RegionTypes.Add(new { Name = r.Name, Type = r.Type.ToString() })) ; RegionTypes.Insert(0, new { Name = "", Type = "" }) ; }
public void WhenInstantiatingClassWithDefaultConstructor_Succeeds() { // Arrange PageTemplate model; // Act model = new PageTemplate(); // Assert Assert.NotNull(model); }
/// <summary> /// Initializes a new instance of the <see cref="TemplateImporter" /> class. /// </summary> /// <param name="ZipFileName">Name of the zip file.</param> /// <param name="applicationPath">The application path.</param> public TemplateImporter(string ZipFileName, string applicationPath) { string uniqueExtension = DateTime.Now.ToFileTime().ToString(); this.applicationPath = applicationPath; this.zipFileName = ZipFileName; this.templateExtractionFolder = string.Concat(applicationPath, "App_Data\\temp_", uniqueExtension, "\\"); this.sitefinityTemplatesInstallationFolder = string.Concat(applicationPath, "App_Data\\Sitefinity\\WebsiteTemplates\\"); pageManager = PageManager.GetManager(); pageTemplate = pageManager.CreateTemplate(); pageTemplate.Category = new Guid(); }
/// <summary> /// Default constructor, creates a new model. /// </summary> public PageEditModel() { Template = new PageTemplate() { Preview = new HtmlString( "<table class=\"template\">" + "<tr><td></td></tr>" + "</table>" ) }; Regions = new List<RegionTemplate>() ; RegionTypes = new List<dynamic>() ; ExtensionManager.Current.GetByExtensionType(ExtensionType.Region).OrderBy(e => e.Metadata.Name).Each((i, r) => RegionTypes.Add(new { Name = ExtensionManager.Current.GetNameByType(r.Value.GetType().FullName), Type = r.Value.GetType().FullName })) ; RegionTypes.Insert(0, new { Name = "", Type = "" }) ; }
/// <summary> /// Creates a new model. /// </summary> /// <param name="loadRegionTypes">If the region types should be loaded</param> internal PageEditModel(bool loadRegionTypes = true) { Template = new PageTemplate() { Preview = new HtmlString( "<table class=\"template\">" + "<tr><td></td></tr>" + "</table>" ) }; Regions = new List<RegionTemplate>() ; RegionTypes = new List<dynamic>() ; if (loadRegionTypes) { App.Instance.ExtensionManager.GetByExtensionType(ExtensionType.Region).OrderBy(e => e.Metadata.Name).Each((i, r) => RegionTypes.Add(new { Name = App.Instance.ExtensionManager.GetNameByType(r.Value.GetType().FullName), Type = r.Value.GetType().FullName })) ; RegionTypes.Insert(0, new { Name = "", Type = "" }) ; } }
public Guid CreatePageWithTemplate(PageTemplate template, string pageTitle, string pageUrlName) { Guid pageId = Guid.Empty; App.WorkWith() .Page() .CreateNewStandardPage() .Do(p => { p.GetPageData().Template = template; p.Title = pageTitle; p.UrlName = pageUrlName; pageId = p.Id; }) .CheckOut() .Publish(CultureInfo.InvariantCulture) .SaveChanges(); return pageId; }
public Guid CreatePageWithTemplate(PageTemplate template, string pageTitle, string pageUrlName) { Guid pageId = Guid.Empty; App.WorkWith() .Page() .CreateNewStandardPage() .Do(p => { p.GetPageData().Template = template; p.Title = pageTitle; p.UrlName = pageUrlName; pageId = p.Id; }) .CheckOut() .Publish(SystemManager.CurrentContext.AppSettings.DefaultFrontendLanguage) .SaveChanges(); return pageId; }
public ActionResult Create(PageTemplate pageTemplate) { //check if Page Template name or folder is already taken ValidatePageTemplateName(pageTemplate); if (ModelState.IsValid) { IGstoreDb db = GStoreDb; pageTemplate = db.PageTemplates.Create(pageTemplate); pageTemplate.UpdateAuditFields(CurrentUserProfileOrThrow); pageTemplate = GStoreDb.PageTemplates.Add(pageTemplate); GStoreDb.SaveChanges(); AddUserMessage("Page Template Added", "Page Template '" + pageTemplate.Name.ToHtml() + "' [" + pageTemplate.PageTemplateId + "] created successfully!", UserMessageType.Success); return RedirectToAction("Index"); } this.BreadCrumbsFunc = htmlHelper => this.PageTemplateBreadcrumb(htmlHelper, pageTemplate.ClientId, pageTemplate, false); return View(pageTemplate); }
//------------------------------------------------------------------------------------------- public FilteredFieldsManager(MetaTable table, PageTemplate currentPage) { _table = table; _currentPage = currentPage; foreach (var column in _table.Columns) { // carry on the loop at the next column // if scaffold table is set to false or DenyRead if (!column.Scaffold || column.IsLongString || column.ColumnIsInPage(_currentPage)) continue; var f = new DynamicField(); f.DataField = column.Name; _selectedColumns.Add(f); } }
public static void Create() { PageManager pageMgr = PageManager.GetManager(); pageMgr.Provider.SuppressSecurityChecks = true; PageNode shellPage = pageMgr.GetPageNodes().Where(page => page.RootNodeId == SiteInitializer.BackendRootNodeId && page.Title == "Shell" && !page.IsDeleted).FirstOrDefault(); if (shellPage == null) { var pageId = Guid.NewGuid(); PageNode parent = pageMgr.GetPageNodes().Where(page => page.RootNodeId == SiteInitializer.BackendRootNodeId && page.Title == "$Resources: PageResources,ToolsNodeTitle").FirstOrDefault(); if (parent == null) { parent = pageMgr.GetPageNodes().Where(page => page.RootNodeId == SiteInitializer.BackendRootNodeId && page.Title == "Sitefinity").FirstOrDefault(); } PageTemplate template = pageMgr.GetTemplates().Where(t => t.Title == "Default Backend Template").FirstOrDefault(); PageNode pageNode = pageMgr.CreatePage(parent, pageId, NodeType.Standard); PageData pageData = pageNode.GetPageData(); pageData.Template = template; pageData.Culture = Thread.CurrentThread.CurrentCulture.ToString(); String pageName = "Shell"; pageData.HtmlTitle = pageName; pageNode.Name = pageName; pageNode.Description = pageName; pageNode.Title = pageName; pageNode.UrlName = "Shell"; pageNode.ShowInNavigation = true; pageNode.DateCreated = DateTime.UtcNow; pageNode.LastModified = DateTime.UtcNow; pageNode.ApprovalWorkflowState = "Published"; PageDraft draft = pageMgr.EditPage(pageData.Id); // Add layout // var contentPlaceholder = GetContentPlaceholderId(pageData); // var contentCaption = "LayoutControlInContentPlaceholder"; // AddLayoutControlToPage(pageId, contentPlaceholder, contentCaption, ""); // var ctrl_css = new CssEmbedControl(); ctrl_css.CustomCssCode = @" div.console { word-wrap: break-word; } div.console { padding-left: 10px; font-size: 14px; margin-top: 1em; } div.console div.jquery-console-inner { width: 1200px; height: 800px; background: #efefef; padding: 0.5em; overflow: auto; } div.console div.jquery-console-prompt-box { color: #444; font-family: monospace; } div.console div.jquery-console-focus span.jquery-console-cursor { background: #333; color: #eee; font-weight: bold; } div.console div.jquery-console-message-error { color: #ef0505; font-family: sans-serif; font-weight: bold; padding: 0.1em; } div.console div.jquery-console-message-success { color: #187718; font-family: monospace; padding: 0.1em; } div.console span.jquery-console-prompt-label { font-weight: bold; } " ; var pageControl = pageMgr.CreateControl <PageDraftControl>(ctrl_css, "Content"); pageControl.Caption = "Style"; pageMgr.SetControlDefaultPermissions(pageControl); draft.Controls.Add(pageControl); var ctrl_js0 = new JavaScriptEmbedControl(); ctrl_js0.Url = "https://code.jquery.com/jquery-2.1.1.min.js"; pageControl = pageMgr.CreateControl <PageDraftControl>(ctrl_js0, "Content"); pageControl.Caption = "JavaScript 0"; pageMgr.SetControlDefaultPermissions(pageControl); draft.Controls.Add(pageControl); var ctrl_js2 = new JavaScriptEmbedControl(); ctrl_js2.ScriptEmbedPosition = Telerik.Sitefinity.Web.UI.PublicControls.Enums.ScriptEmbedPosition.InPlace; ctrl_js2.CustomJavaScriptCode = @" var list = ''; var root = ''; var resource = 'pages'; var site = ''; var provider = ''; var controller; $(document).ready(function () { var console = $('.console'); controller = console.console({ promptLabel: 'Pages> ', autofocus: true, completeHandle: function (promptText) { promptText = promptText.trim(); if (promptText == '') return; var words = promptText.split(' '); var keyword = words[words.length - 1]; var len = keyword.length; return list.filter(function (elt) { return elt.toLowerCase().startsWith(keyword.toLowerCase()); }) .map(function (elt) { return elt.substring(len, 36); }); }, cols: 80, commandValidate: function (line) { if (line == '') return false; else return true; }, commandHandle: function (line, report) { $.ajax({ url: '/Sitefinity/Services/ShellModule/ShellService.svc/Command', data: { root: root, rsc: resource, cmd: line, site: site, provider:provider }, success: function (data) { if (data.response == undefined && data.indexOf('Temporarily unavailable due to maintenance') >= 0) { report([{ msg: 'Site is being restarted', className: 'jquery-console-message-error' }]); return; } if (data.response != '') list = data.response.split('\n'); if (data.path != '') controller.promptLabel = data.path; if (data.root != '') root = data.root; if (data.resource != '') resource = data.resource; if (data.site != '') site = data.site; provider = data.provider; if (data.error != '') report([{ msg: data.error, className: 'jquery-console-message-error' }]); if (data.response != '' || data.error == '') report([{ msg: data.response, className: 'jquery-console-message-success' }]); }, error: function (xhr, ajaxOptions, thrownError) { report([{ msg: 'Error: ' + xhr.status + '\n' + thrownError, className: 'jquery-console-message-error' }]); } }); }, animateScroll: true, promptHistory: true, }); }); " ; pageControl = pageMgr.CreateControl <PageDraftControl>(ctrl_js2, "Content"); pageControl.Caption = "JavaScript 2"; pageMgr.SetControlDefaultPermissions(pageControl); draft.Controls.Add(pageControl); // var ctrl_js1 = new JavaScriptEmbedControl(); ctrl_js1.CustomJavaScriptCode = @"!function(e){var n=!!~navigator.userAgent.indexOf("" AppleWebKit/"");e.fn.console=function(o){function t(){N=0,X="""",F=0,v(),O=e('<div class=""jquery-console-prompt-box""></div>');var n=e('<span class=""jquery-console-prompt-label""></span>'),o=U.continuedPrompt?B:U.promptLabel;O.append(n.text(o).show()),n.html(n.html().replace("" "","" "")),P=e('<span class=""jquery-console-prompt""></span>'),O.append(P),R.append(O),H()}function r(e){return(e.keyCode==L.tab||192==e.keyCode)&&e.altKey}function s(e){if(0!=E.length){(F+=e)<0?F=E.length:F>E.length&&(F=0);X=0==F?Y:E[F-1],o.historyPreserveColumn?X.length<N+1?N=X.length:0==N&&(N=X.length):N=X.length,H()}}function c(){s(-1)}function i(){s(1)}function a(e){E.push(e),Y=""""}function l(){return N<X.length&&(X=X.substring(0,N)+X.substring(N+1),Y=X,!0)}function u(){l()&&H()}function f(){R.children("".jquery-console-prompt-box, .jquery-console-message"").remove(),U.report("" ""),U.promptText(""""),U.focus()}function p(){var e=jQuery.fn.jquery.split("".""),n=parseInt(e[0]),o=parseInt(e[1]);1==n&&o>6||n>1?R.prop({scrollTop:R.prop(""scrollHeight"")}):R.attr({scrollTop:R.attr(""scrollHeight"")})}function d(){""function""==typeof o.cancelHandle&&o.cancelHandle()}function m(){if(""function""==typeof o.commandHandle){h(),a(X);var e=X;U.continuedPrompt?Z?Z+=""\n""+X:Z=X:Z=void 0,Z&&(e=Z);var n=o.commandHandle(e,function(e){g(e)});U.continuedPrompt&&!Z&&(Z=X),""boolean""==typeof n?n?g():g(""Command failed."",""jquery-console-message-error""):""string""==typeof n?g(n,""jquery-console-message-success""):""object""==typeof n&&n.length?g(n):U.continuedPrompt&&g()}}function h(){J=!1}function v(){J=!0}function g(n,o){if(N=-1,H(),""string""==typeof n)b(n,o);else if(e.isArray(n))for(var r in n){var s=n[r];b(s.msg,s.className)}else R.append(n);t()}function y(e,n){var o=X;O.remove(),g(e,n),U.promptText(o)}function b(n,o){var t=e('<div class=""jquery-console-message""></div>');o&&t.addClass(o),t.filledText(n).hide(),R.append(t),t.show()}function C(e){return N+e>=0&&N+e<=X.length&&(N+=e,!0)}function j(){return!!C(1)&&(H(),!0)}function x(){return!!C(-1)&&(H(),!0)}function q(){C(-N)&&H()}function T(){C(X.length-N)&&H()}function w(e){if(""string""==typeof e){var n=e.charCodeAt();return n>=""A"".charCodeAt()&&n<=""Z"".charCodeAt()||n>=""a"".charCodeAt()&&n<=""z"".charCodeAt()||n>=""0"".charCodeAt()&&n<=""9"".charCodeAt()}return!1}function A(){if(""function""==typeof o.completeHandle){var e=o.completeHandle(X),n=e.length;if(1===n)U.promptText(X+e[0]);else if(n>1&&o.cols){for(var t=X,r=0,s=0;s<n;s++)r=Math.max(r,e[s].length);r+=2;var c=Math.floor(o.cols/r),i="""",a=0;for(s=0;s<n;s++){var l=e[s];i+=e[s];for(var u=l.length;u<r;u++)i+="" "";++a>=c&&(i+=""\n"",a=0)}g(i,""jquery-console-message-value""),U.promptText(t)}}}function I(){""function""==typeof o.completeIssuer&&o.completeIssuer(X)}function k(e,n){var t=n.length;if(1===t)U.promptText(e+n[0]);else if(t>1&&o.cols){for(var r=e,s=0,c=0;c<t;c++)s=Math.max(s,n[c].length);s+=2;var i=Math.floor(o.cols/s),a="""",l=0;for(c=0;c<t;c++){var u=n[c];a+=n[c];for(var f=u.length;f<s;f++)a+="" "";++l>=i&&(a+=""\n"",l=0)}g(a,""jquery-console-message-value""),U.promptText(r)}}function H(){var e=X,n="""";if(N>0&&""""==e)n=z;else if(N==X.length)n=K(e)+z;else{var o=e.substring(0,N),t=e.substring(N,N+1);t&&(t='<span class=""jquery-console-cursor"">'+K(t)+""</span>"");var r=e.substring(N+1);n=K(o)+t+K(r)}P.html(n),p()}function K(e){return e.replace(/&/g,""&"").replace(/</g,""<"").replace(/</g,""<"").replace(/ /g,"" "").replace(/\n/g,""<br />"")}var L={37:x,39:j,38:c,40:i,8:function(){C(-1)&&(l(),H())},46:u,35:T,36:q,13:function(){var e=X;if(""function""==typeof o.commandValidate){var n=o.commandValidate(e);1==n||0==n?n&&m():g(n,""jquery-console-message-error"")}else m()},18:function(){},9:function(){""function""==typeof o.completeHandle?A():I()}},M={65:q,69:T,68:u,78:i,80:c,66:x,70:j,75:function(){for(;l();)H()},76:f,85:function(){U.promptText("""")}};o.ctrlCodes&&e.extend(M,o.ctrlCodes);var O,P,S={70:function(){for(;N<X.length&&!w(X[N])&&j(););for(;N<X.length&&w(X[N])&&j(););},66:function(){for(;N-1>=0&&!w(X[N-1])&&x(););for(;N-1>=0&&w(X[N-1])&&x(););},68:function(){for(;N<X.length&&!w(X[N]);)l(),H();for(;N<X.length&&w(X[N]);)l(),H()}},W={13:function(){var e=""\n""+X.split(""\n"").slice(-1)[0].match(/^(\s*)/g)[0];X+=e,C(e.length),H()}},z='<span class=""jquery-console-cursor""> </span>',Q=e(this),R=e('<div class=""jquery-console-inner""></div>'),V=e('<textarea autocomplete=""off"" autocorrect=""off"" autocapitalize=""off"" spellcheck=""false"" class=""jquery-console-typer""></textarea>'),B=o&&o.continuedPromptLabel?o.continuedPromptLabel:""> "",N=0,X="""",Y="""",Z="""",D=void 0===o.fadeOnReset||o.fadeOnReset,E=[],F=0,G=0,J=!0,U={};U.promptLabel=o&&o.promptLabel?o.promptLabel:""> "",Q.append(R),R.append(V),V.css({position:""absolute"",top:0,left:""-9999px""}),o.welcomeMessage&&b(o.welcomeMessage,""jquery-console-welcome""),t(),o.autofocus&&(R.addClass(""jquery-console-focus""),V.focus(),setTimeout(function(){R.addClass(""jquery-console-focus""),V.focus()},100)),U.inner=R,U.typer=V,U.scrollToBottom=p,U.report=y,U.showCompletion=k,U.clearScreen=f,U.reset=function(){var n=void 0!==o.welcomeMessage,r=function(){R.find(""div"").each(function(){n?n=!1:e(this).remove()})};D?R.parent().fadeOut(function(){r(),t(),R.parent().fadeIn($)}):(r(),t(),$())};var $=function(){R.addClass(""jquery-console-focus""),V.focus()};return U.focus=function(){$()},U.notice=function(n,o){var t=e('<div class=""notice""></div>').append(e(""<div></div>"").text(n)).css({visibility:""hidden""});Q.append(t);var r=!0;if(""fadeout""==o)setTimeout(function(){t.fadeOut(function(){t.remove()})},4e3);else if(""prompt""==o){var s=e('<br/><div class=""action""><a href=""javascript:"">OK</a><div class=""clear""></div></div>');t.append(s),r=!1,s.click(function(){t.fadeOut(function(){t.remove(),R.css({opacity:1})})})}var c=t.height();return t.css({height:""0px"",visibility:""visible""}).animate({height:c+""px""},function(){r||R.css({opacity:.5})}),t.css(""cursor"",""default""),t},Q.click(function(){return!window.getSelection().toString()&&(R.addClass(""jquery-console-focus""),R.removeClass(""jquery-console-nofocus""),n?V.focusWithoutScrolling():V.css(""position"",""fixed"").focus(),p(),!1)}),V.blur(function(){R.removeClass(""jquery-console-focus""),R.addClass(""jquery-console-nofocus"")}),V.bind(""paste"",function(e){V.val(""""),setTimeout(function(){V.consoleInsert(V.val()),V.val("""")},0)}),V.keydown(function(e){G=0;var n=e.keyCode;if(e.ctrlKey&&67==n)return G=n,d(),!1;if(J){if(e.shiftKey&&n in W)return G=n,W[n](),!1;if(e.altKey&&n in S)return G=n,S[n](),!1;if(e.ctrlKey&&n in M)return G=n,M[n](),!1;if(n in L)return G=n,L[n](),!1}}),V.keypress(function(e){var t=e.keyCode||e.which;if(r(e))return!1;if((e.ctrlKey||e.metaKey)&&""v""==String.fromCharCode(t).toLowerCase())return!0;if(J&&G!=t&&t>=32){if(G)return!1;(void 0===o.charInsertTrigger||""function""==typeof o.charInsertTrigger&&o.charInsertTrigger(t,X))&&V.consoleInsert(t)}return!n&&void 0}),V.consoleInsert=function(e){var n=""number""==typeof e?String.fromCharCode(e):e,o=X.substring(0,N),t=X.substring(N);X=o+n+t,C(n.length),Y=X,H()},U.promptText=function(e){return""string""==typeof e&&(N=(X=e).length,H()),X},U},e.fn.filledText=function(n){return e(this).text(n),e(this).html(e(this).html().replace(/\t/g,"" "").replace(/\n/g,""<br/>"")),this},e.fn.focusWithoutScrolling=function(){var n=window.scrollX,o=window.scrollY;e(this).focus(),window.scrollTo(n,o)}}(jQuery);"; ctrl_js1.ScriptEmbedPosition = Telerik.Sitefinity.Web.UI.PublicControls.Enums.ScriptEmbedPosition.InPlace; pageControl = pageMgr.CreateControl <PageDraftControl>(ctrl_js1, "Content"); pageControl.Caption = "JavaScript 1"; pageMgr.SetControlDefaultPermissions(pageControl); draft.Controls.Add(pageControl); // Add content block var cb = new ContentBlock(); cb.Html = "<div class=\"console\"></div><br><br>"; pageControl = pageMgr.CreateControl <PageDraftControl>(cb, "Content"); pageControl.Caption = "Shell"; pageMgr.SetControlDefaultPermissions(pageControl); draft.Controls.Add(pageControl); // Saves the page var master = pageMgr.PagesLifecycle.CheckIn(draft); pageMgr.PagesLifecycle.Publish(master); pageMgr.SaveChanges(); } }
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 }
private void ManagePageTemplateFolders(PageTemplate template, FolderManagingType type) { var stageDirectory = template.Site.StageDirectory + Path.DirectorySeparatorChar + template.TemplateFolder; var liveDirectory = template.Site.LiveDirectory + Path.DirectorySeparatorChar + template.TemplateFolder; switch (type) { case FolderManagingType.CreateFolder: if (!Directory.Exists(stageDirectory)) { Directory.CreateDirectory(stageDirectory); } if (!Directory.Exists(liveDirectory)) { Directory.CreateDirectory(liveDirectory); } break; case FolderManagingType.DeleteFolder: if (!string.IsNullOrWhiteSpace(template.TemplateFolder)) { if (Directory.Exists(stageDirectory)) { Directory.Delete(stageDirectory, true); } if (Directory.Exists(liveDirectory)) { Directory.Delete(liveDirectory, true); } } break; case FolderManagingType.ChangeFolder: var oldTemplate = ReadPageTemplateProperties(template.Id, false); if (oldTemplate == null) { throw new ApplicationException(string.Format(TemplateStrings.TemplateNotFound, template.Id)); } var oldFolder = oldTemplate.TemplateFolder; if (!string.IsNullOrWhiteSpace(oldTemplate.TemplateFolder)) { if (string.IsNullOrWhiteSpace(template.TemplateFolder)) { ManagePageTemplateFolders(oldTemplate, FolderManagingType.DeleteFolder); return; } if (template.TemplateFolder == oldFolder) { return; } var oldStageDirectory = oldTemplate.Site.StageDirectory + Path.DirectorySeparatorChar + oldFolder; var oldLiveDirectory = oldTemplate.Site.LiveDirectory + Path.DirectorySeparatorChar + oldFolder; if (Directory.Exists(oldStageDirectory)) { Directory.Move(oldStageDirectory, stageDirectory); } if (Directory.Exists(oldLiveDirectory)) { Directory.Move(oldLiveDirectory, liveDirectory); } } else if (!string.IsNullOrWhiteSpace(template.TemplateFolder)) { ManagePageTemplateFolders(template, FolderManagingType.CreateFolder); } break; } }
public PageTemplate NewPageTemplateProperties(int parentId) => PageTemplate.Create(parentId, SiteRepository.GetById(parentId));
private void AddIncludePageRegions(IDictionary <string, RegionModelData> regionModels, PageTemplate pageTemplate) { IEnumerable <string> includes = pageTemplate.Metadata.GetTextFieldValues("includes"); // TODO: use external link field (?) if (includes == null) { Logger.Debug($"No include Pages found in {pageTemplate.FormatIdentifier()}"); return; } foreach (string include in includes) { string includePageId; if (include.StartsWith(LegacyIncludePrefix)) { // Legacy include: publish path. Try to convert to WebDAV URL. string relativeUrl = include.Substring(LegacyIncludePrefix.Length).Replace('-', ' '); Publication contextPub = (Publication)pageTemplate.ContextRepository; includePageId = $"/webdav/{contextPub.Title}/{contextPub.RootStructureGroup.Title}/_System/include/{relativeUrl}.tpg"; Logger.Debug($"Converted legacy Page include '{include}' to WebDAV URL '{includePageId}'."); } else { includePageId = include; } Page includePage = (Page)Pipeline.Session.GetObject(includePageId); string moduleName; string regionViewName = StripModuleName(includePage.Title, out moduleName); string regionName = regionViewName; RegionModelData includePageRegion; if (regionModels.TryGetValue(regionName, out includePageRegion)) { Logger.Debug($"Promoting Region '{regionName}' to Include Page Region."); } else { includePageRegion = new RegionModelData { Name = regionName, MvcData = new MvcData { ViewName = regionViewName, AreaName = moduleName } }; regionModels.Add(regionName, includePageRegion); } includePageRegion.IncludePageId = GetDxaIdentifier(includePage); if (Pipeline.Settings.GenerateXpmMetadata) { includePageRegion.XpmMetadata = new Dictionary <string, object> { { "IncludedFromPageID", GetTcmIdentifier(includePage) }, { "IncludedFromPageTitle", includePage.Title }, { "IncludedFromPageFileName", includePage.FileName } }; } } }
public HideColumnInAttribute(PageTemplate[] lookupTable) { PageTemplates = lookupTable; }
/// <summary> /// Generates C# code for service client. /// </summary> /// <param name="cm"></param> /// <returns></returns> public override async Task Generate(CodeModel cm) { var codeModel = cm as CodeModelCsa; if (codeModel == null) { throw new InvalidCastException("CodeModel is not a Azure c# CodeModel"); } // Service client var serviceClientTemplate = new AzureServiceClientTemplate { Model = codeModel }; await Write(serviceClientTemplate, $"{codeModel.Name}{ImplementationFileExtension}"); // Service client interface var serviceClientInterfaceTemplate = new ServiceClientInterfaceTemplate { Model = codeModel }; await Write(serviceClientInterfaceTemplate, "I" + codeModel.Name + ImplementationFileExtension); // Operations foreach (MethodGroupCs group in codeModel.Operations) { if (!group.IsCodeModelMethodGroup) { // Operation var operationsTemplate = new AzureMethodGroupTemplate { Model = group }; await Write(operationsTemplate, operationsTemplate.Model.TypeName + ImplementationFileExtension); // Operation interface var operationsInterfaceTemplate = new MethodGroupInterfaceTemplate { Model = group }; await Write(operationsInterfaceTemplate, $"I{operationsInterfaceTemplate.Model.TypeName}{ImplementationFileExtension}"); } var operationExtensionsTemplate = new ExtensionsTemplate { Model = group }; await Write(operationExtensionsTemplate, $"{group.ExtensionTypeName}Extensions{ImplementationFileExtension}"); } // Models foreach (CompositeTypeCs model in codeModel.ModelTypes.Concat(codeModel.HeaderTypes)) { if (model.Extensions.ContainsKey(AzureExtensions.ExternalExtension) && (bool)model.Extensions[AzureExtensions.ExternalExtension]) { continue; } if (model.IsResource()) { continue; } var modelTemplate = new ModelTemplate { Model = model }; await Write(modelTemplate, Path.Combine(Settings.Instance.ModelsName, $"{model.Name}{ImplementationFileExtension}")); } // Enums foreach (EnumTypeCs enumType in codeModel.EnumTypes) { var enumTemplate = new EnumTemplate { Model = enumType }; await Write(enumTemplate, Path.Combine(Settings.Instance.ModelsName, $"{enumTemplate.Model.Name}{ImplementationFileExtension}")); } // Page class foreach (var pageClass in codeModel.pageClasses) { var pageTemplate = new PageTemplate { Model = new Page(pageClass.Value, pageClass.Key.Key, pageClass.Key.Value) }; await Write(pageTemplate, Path.Combine(Settings.Instance.ModelsName, $"{pageTemplate.Model.TypeDefinitionName}{ImplementationFileExtension}")); } // Exceptions foreach (CompositeTypeCs exceptionType in codeModel.ErrorTypes) { if (exceptionType.Name == "CloudError") { continue; } var exceptionTemplate = new ExceptionTemplate { Model = exceptionType }; await Write(exceptionTemplate, Path.Combine(Settings.Instance.ModelsName, $"{exceptionTemplate.Model.ExceptionTypeDefinitionName}{ImplementationFileExtension}")); } }
internal static PageTemplate UpdatePageTemplateProperties(PageTemplate pageTemplate) => DefaultRepository.Update <PageTemplate, PageTemplateDAL>(pageTemplate);
internal static PageTemplate SaveProperties(PageTemplate template) => DefaultRepository.Save <PageTemplate, PageTemplateDAL>(template);
public ActionResult RoutePage(int pageTemplateId = 0, string pageFile = "", string recordId = "", string refKeyColumnName = "", string refKeyValue = "", string cancelMode = "", int parentPageTemplateId = 0, string layoutType = "") { try { // page variables ViewData["ParentPageTemplateId"] = parentPageTemplateId; ViewData["RecordId"] = recordId; ViewData["LayoutType"] = layoutType; ViewData["CancelMode"] = cancelMode; ViewData["RefKeyColumnName"] = refKeyColumnName; ViewData["RefKeyValue"] = refKeyValue; // manual routing !!! if (pageTemplateId == 645126) // Contracts page, hardcoded { return(PartialView("~/Views/App/NetworkInformationContractsEdit.cshtml")); } // set PageTemplate PageTemplate pageTemplate = new PageTemplate(); PageTemplate pageTemplate2 = new PageTemplate { PageTemplateId = 0, PrimaryKey = "dummy", PrimaryKey2 = 0 }; if (pageTemplateId > 0) { pageTemplate = SessionService.PageTemplate(pageTemplateId); if (pageTemplate.PageTemplateId2 > 0) { pageTemplate2 = SessionService.PageTemplate(pageTemplate.PageTemplateId2); } } ViewData["PageTemplate"] = pageTemplate; ViewData["PageTemplate2"] = pageTemplate2; // route to page if (pageFile.Length > 3) { // reroute to custom edit form if (pageFile == "_FormTemplate") { if (pageTemplate.CustomEditForm.Length > 3) { return(PartialView(pageTemplate.CustomEditForm)); } } return(PartialView(pageFile)); } else if (pageTemplateId > 0) { if (pageTemplate.PageType == "formonly") { ViewData["RecordId"] = SessionService.UserId; return(PartialView("_FormTemplate")); } else if (pageTemplate.PageType == "inline") { return(PartialView("_InlineTemplate")); } else { return(PartialView("_GridTemplate")); } } return(PartialView("_NotExist")); } catch (Exception ex) { Helper.LogError(ex.Message + "\r\n" + ex.StackTrace); } return(null); }
public string GetOptionsByColumnDefId(int pageTemplateId, int columnDefId) { var columnDef = SessionService.ColumnDefs(pageTemplateId).Where(w => w.ColumnDefId == columnDefId).FirstOrDefault(); string orderBy = ""; if (columnDef.OrderField.Length > 3) { orderBy = " ORDER BY " + columnDef.OrderField; } string textField = ""; if (columnDef.TextField.Contains(",")) { var columns = columnDef.TextField.Split(new char[] { ',' }); foreach (var columnName in columns) { var dataType = SessionService.DataType(pageTemplateId, columnName); if (dataType == "TEXT") { if (textField.Length == 0) { textField = columnName; } else { textField = textField + " + ' - ' + " + columnName; } } else { if (textField.Length == 0) { textField = "CAST(" + columnName + " AS varchar)"; } else { textField = textField + " + ' - ' + " + "CAST(" + columnName + " AS varchar)"; } } } } else { textField = columnDef.TextField; } string sql = "SELECT CAST(" + columnDef.ValueField + " AS varchar) AS ValueField, (" + textField + ") AS TextField FROM " + columnDef.LookupTable + " " + orderBy; string json = ""; PageTemplate pageTemplate = SessionService.PageTemplate(pageTemplateId); var dbEntity = SessionService.DbEntity(pageTemplate.DbEntityId); using (TargetEntities targetDb = new TargetEntities()) { targetDb.Database.Connection.ConnectionString = dbEntity.ConnectionString; var recs = targetDb.Database.SqlQuery <ValueText>(sql); json = Newtonsoft.Json.JsonConvert.SerializeObject(recs); if (json.Length < 2) { json = "[];"; } } if (columnDef.AddBlankOption) { json = "[{ \"ValueField\":\"\", \"TextField\":\"\"}," + json.Substring(1, json.Length - 1); } return(json); }
/// <summary> /// Generates C# code for service client. /// </summary> /// <param name="serviceClient"></param> /// <returns></returns> public override async Task Generate(ServiceClient serviceClient) { // Service client var serviceClientTemplate = new AzureServiceClientTemplate { Model = new AzureServiceClientTemplateModel(serviceClient), }; await Write(serviceClientTemplate, serviceClient.Name + ".cs"); // Service client extensions var extensionsTemplate = new ExtensionsTemplate { Model = new AzureExtensionsTemplateModel(serviceClient, null), }; await Write(extensionsTemplate, serviceClient.Name + "Extensions.cs"); // Service client interface var serviceClientInterfaceTemplate = new ServiceClientInterfaceTemplate { Model = new AzureServiceClientTemplateModel(serviceClient), }; await Write(serviceClientInterfaceTemplate, "I" + serviceClient.Name + ".cs"); // Operations foreach (var group in serviceClient.MethodGroups) { // Operation var operationsTemplate = new AzureMethodGroupTemplate { Model = new AzureMethodGroupTemplateModel(serviceClient, group), }; await Write(operationsTemplate, operationsTemplate.Model.MethodGroupType + ".cs"); // Service client extensions var operationExtensionsTemplate = new ExtensionsTemplate { Model = new AzureExtensionsTemplateModel(serviceClient, group), }; await Write(operationExtensionsTemplate, operationExtensionsTemplate.Model.ExtensionName + "Extensions.cs"); // Operation interface var operationsInterfaceTemplate = new MethodGroupInterfaceTemplate { Model = new AzureMethodGroupTemplateModel(serviceClient, group), }; await Write(operationsInterfaceTemplate, "I" + operationsInterfaceTemplate.Model.MethodGroupType + ".cs"); } // Models foreach (var model in serviceClient.ModelTypes) { if (model.Extensions.ContainsKey(ExternalExtension) && (bool) model.Extensions[ExternalExtension]) { continue; } var modelTemplate = new ModelTemplate { Model = new AzureModelTemplateModel(model), }; await Write(modelTemplate, Path.Combine("Models", model.Name + ".cs")); } // Enums foreach (var enumType in serviceClient.EnumTypes) { var enumTemplate = new EnumTemplate { Model = new EnumTemplateModel(enumType), }; await Write(enumTemplate, Path.Combine("Models", enumTemplate.Model.TypeDefinitionName + ".cs")); } // Page class foreach (var pageClass in pageClasses) { var pageTemplate = new PageTemplate { Model = new PageTemplateModel(pageClass.Value, pageClass.Key.Key, pageClass.Key.Value), }; await Write(pageTemplate, Path.Combine("Models", pageTemplate.Model.TypeDefinitionName + ".cs")); } }
/// <summary> /// Generate Python client code for given ServiceClient. /// </summary> /// <param name="cm"></param> /// <returns></returns> public override async Task Generate(CodeModel cm) { var codeModel = cm as CodeModelPya; if (codeModel == null) { throw new Exception("CodeModel is not a Python Azure Code Model"); } // Service client string[] namespaceParts = codeModel.Namespace.Split('.'); for (int i = 1; i < namespaceParts.Length; ++i) { string initFolderName = Path.Combine(namespaceParts.Take(i).ToArray()); await Write("__import__('pkg_resources').declare_namespace(__name__)", Path.Combine(initFolderName, "__init__.py"), true); } var folderName = Path.Combine(codeModel.Namespace.Split('.')); var setupTemplate = new SetupTemplate { Model = codeModel }; await Write(setupTemplate, "setup.py"); var serviceClientInitTemplate = new ServiceClientInitTemplate { Model = codeModel }; await Write(serviceClientInitTemplate, Path.Combine(folderName, "__init__.py")); var serviceClientTemplate = new AzureServiceClientTemplate { Model = codeModel, }; await Write(serviceClientTemplate, Path.Combine(folderName, codeModel.Name.ToPythonCase() + ".py")); var versionTemplate = new VersionTemplate { Model = codeModel, }; await Write(versionTemplate, Path.Combine(folderName, "version.py")); var exceptionTemplate = new ExceptionTemplate { Model = codeModel, }; await Write(exceptionTemplate, Path.Combine(folderName, "exceptions.py")); var credentialTemplate = new CredentialTemplate { Model = codeModel, }; await Write(credentialTemplate, Path.Combine(folderName, "credentials.py")); //Models var models = codeModel.ModelTemplateModels.Where(each => !each.Extensions.ContainsKey(AzureExtensions.ExternalExtension)); if (models.Any()) { var modelInitTemplate = new AzureModelInitTemplate { Model = codeModel }; await Write(modelInitTemplate, Path.Combine(folderName, "models", "__init__.py")); foreach (var modelType in models) { var modelTemplate = new ModelTemplate { Model = modelType }; await Write(modelTemplate, Path.Combine(folderName, "models", modelType.Name.ToPythonCase() + ".py")); } } //MethodGroups if (codeModel.MethodGroupModels.Any()) { var methodGroupIndexTemplate = new MethodGroupInitTemplate { Model = codeModel }; await Write(methodGroupIndexTemplate, Path.Combine(folderName, "operations", "__init__.py")); foreach (var methodGroupModel in codeModel.MethodGroupModels) { var methodGroupTemplate = new AzureMethodGroupTemplate { Model = methodGroupModel as MethodGroupPya }; await Write(methodGroupTemplate, Path.Combine(folderName, "operations", ((string)methodGroupModel.TypeName).ToPythonCase() + ".py")); } } // Enums if (codeModel.EnumTypes.Any()) { var enumTemplate = new EnumTemplate { Model = codeModel.EnumTypes }; await Write(enumTemplate, Path.Combine(folderName, "models", codeModel.Name.ToPythonCase() + "_enums.py")); } // Page class foreach (var pageModel in codeModel.PageModels) { var pageTemplate = new PageTemplate { Model = pageModel }; await Write(pageTemplate, Path.Combine(folderName, "models", pageModel.TypeDefinitionName.ToPythonCase() + ".py")); } }
/// <summary> /// Refreshes the model from the database. /// </summary> public virtual void Refresh() { if (Page != null) { if (!Page.IsNew) { // Page.Id != Guid.Empty) { Page = Page.GetSingle(Page.Id, true) ; GetRelated() ; } else { Template = PageTemplate.GetSingle("pagetemplate_id = @0", Page.TemplateId) ; } } }
public App() { InitializeComponent(); AppResources.Culture = CrossMultilingual.Current.DeviceCultureInfo; MainPage = new PageTemplate(); }
/// <summary> /// Generate Python client code for given ServiceClient. /// </summary> /// <param name="cm"></param> /// <returns></returns> public override async Task Generate(CodeModel cm) { var codeModel = cm as CodeModelPya; if (codeModel == null) { throw new Exception("CodeModel is not a Python Azure Code Model"); } writeNamespaceFolders(codeModel); if (codeModel.BasicSetupPy) { var setupTemplate = new SetupTemplate { Model = codeModel }; await Write(setupTemplate, "setup.py"); } var folderName = codeModel.NoNamespaceFolders?"":Path.Combine(codeModel.Namespace.Split('.')); var serviceClientInitTemplate = new ServiceClientInitTemplate { Model = codeModel }; await Write(serviceClientInitTemplate, Path.Combine(folderName, "__init__.py")); var serviceClientTemplate = new AzureServiceClientTemplate { Model = codeModel, }; await Write(serviceClientTemplate, Path.Combine(folderName, codeModel.Name.ToPythonCase() + ".py")); var versionTemplate = new VersionTemplate { Model = codeModel, }; await Write(versionTemplate, Path.Combine(folderName, "version.py")); //Models var models = codeModel.ModelTemplateModels.Where(each => !each.Extensions.ContainsKey(AzureExtensions.ExternalExtension)); if (models.Any()) { var modelInitTemplate = new AzureModelInitTemplate { Model = codeModel }; await Write(modelInitTemplate, Path.Combine(folderName, "models", "__init__.py")); foreach (var modelType in models) { var modelTemplate = new ModelTemplate { Model = modelType }; await Write(modelTemplate, Path.Combine(folderName, "models", modelType.Name.ToPythonCase() + ".py")); // Rebuild the same in Python 3 mode modelTemplate.Python3Mode = true; await Write(modelTemplate, Path.Combine(folderName, "models", modelType.Name.ToPythonCase() + "_py3.py")); } } //MethodGroups if (codeModel.MethodGroupModels.Any()) { var methodGroupIndexTemplate = new MethodGroupInitTemplate { Model = codeModel }; await Write(methodGroupIndexTemplate, Path.Combine(folderName, "operations", "__init__.py")); foreach (var methodGroupModel in codeModel.MethodGroupModels) { var methodGroupTemplate = new AzureMethodGroupTemplate { Model = methodGroupModel as MethodGroupPya }; await Write(methodGroupTemplate, Path.Combine(folderName, "operations", ((string)methodGroupModel.TypeName).ToPythonCase() + ".py")); } } // Enums if (codeModel.EnumTypes.Any()) { var enumTemplate = new EnumTemplate { Model = codeModel.EnumTypes }; await Write(enumTemplate, Path.Combine(folderName, "models", codeModel.Name.ToPythonCase() + "_enums.py")); } // Page class foreach (var pageModel in codeModel.PageModels) { var pageTemplate = new PageTemplate { Model = pageModel }; await Write(pageTemplate, Path.Combine(folderName, "models", pageModel.TypeDefinitionName.ToPythonCase() + ".py")); } }
public static void SetDefaultsForNew(this PageTemplateSection pageTemplateSection, PageTemplate pageTemplate) { pageTemplateSection.Name = "New Page Template Section"; pageTemplateSection.Order = 100; if (pageTemplate != null) { pageTemplateSection.ClientId = pageTemplate.ClientId; pageTemplateSection.Client = pageTemplate.Client; pageTemplateSection.PageTemplateId = pageTemplate.PageTemplateId; pageTemplateSection.PageTemplate = pageTemplate; pageTemplateSection.Order = pageTemplate.Sections.Count == 0 ? 100 : pageTemplate.Sections.Max(vl => vl.Order) + 10; if (pageTemplate.Sections.Any(pts => pts.Name.ToLower() == pageTemplateSection.Name.ToLower())) { bool nameIsDirty = true; int index = 1; do { index++; pageTemplateSection.Name = "New Page Template Section " + index; nameIsDirty = pageTemplate.Sections.Any(pts => pts.Name.ToLower() == pageTemplateSection.Name.ToLower()); } while (nameIsDirty); } } pageTemplateSection.Description = pageTemplateSection.Name; pageTemplateSection.IsPending = false; pageTemplateSection.StartDateTimeUtc = DateTime.UtcNow.AddMinutes(-1); pageTemplateSection.EndDateTimeUtc = DateTime.UtcNow.AddYears(100); }
private void AddDummyScriptControllerToPage(string pageTitlePrefix, string urlNamePrefix, PageTemplate template, string placeHolder = "Body") { var controls = new List <System.Web.UI.Control>(); var mvcProxy1 = new MvcControllerProxy(); mvcProxy1.ControllerName = typeof(DummyScriptController).FullName; var controller1 = new DummyScriptController(); mvcProxy1.Settings = new ControllerSettings(controller1); controls.Add(mvcProxy1); var mvcProxy2 = new MvcControllerProxy(); mvcProxy2.ControllerName = typeof(DummyScriptController).FullName; var controller2 = new DummyScriptController(); mvcProxy2.Settings = new ControllerSettings(controller2); controls.Add(mvcProxy2); Guid pageId = FeatherServerOperations.Pages().CreatePageWithTemplate( template, pageTitlePrefix, urlNamePrefix); PageContentGenerator.AddControlsToPage(pageId, controls, placeHolder); }
/// <summary> /// Generates C# code for service client. /// </summary> /// <param name="serviceClient"></param> /// <returns></returns> public override async Task Generate(CodeModel cm) { // get Azure Java specific codeModel var codeModel = cm as CodeModelJvaf; if (codeModel == null) { throw new InvalidCastException("CodeModel is not a Azure Java Fluent CodeModel"); } // Service client var serviceClientTemplate = new AzureServiceClientTemplate { Model = codeModel }; await Write(serviceClientTemplate, $"{Path.Combine("implementation", codeModel.Name.ToPascalCase() + "Impl")}{ImplementationFileExtension}"); // operations foreach (MethodGroupJvaf methodGroup in codeModel.AllOperations) { // Operation var operationsTemplate = new AzureMethodGroupTemplate { Model = methodGroup }; await Write(operationsTemplate, $"{Path.Combine("implementation", methodGroup.TypeName.ToPascalCase())}Inner{ImplementationFileExtension}"); } //Models foreach (CompositeTypeJvaf modelType in cm.ModelTypes.Concat(codeModel.HeaderTypes)) { if (modelType.Extensions.ContainsKey(AzureExtensions.ExternalExtension) && (bool)modelType.Extensions[AzureExtensions.ExternalExtension]) { continue; } if (modelType.IsResource) { continue; } var modelTemplate = new ModelTemplate { Model = modelType }; await Write(modelTemplate, Path.Combine(modelType.ModelsPackage.Trim('.'), $"{modelType.Name.ToPascalCase()}{ImplementationFileExtension}")); } //Enums foreach (EnumTypeJvaf enumType in cm.EnumTypes) { var enumTemplate = new EnumTemplate { Model = enumType }; await Write(enumTemplate, Path.Combine(enumType.ModelsPackage.Trim('.'), $"{enumTemplate.Model.Name.ToPascalCase()}{ImplementationFileExtension}")); } // Page class foreach (var pageClass in codeModel.pageClasses) { var pageTemplate = new PageTemplate { Model = new PageJvaf(pageClass.Value, pageClass.Key.Key, pageClass.Key.Value), }; await Write(pageTemplate, Path.Combine("implementation", $"{pageTemplate.Model.TypeDefinitionName.ToPascalCase()}{ImplementationFileExtension}")); } // Exceptions foreach (CompositeTypeJv exceptionType in codeModel.ErrorTypes) { if (exceptionType.Name == "CloudError") { continue; } var exceptionTemplate = new ExceptionTemplate { Model = exceptionType }; await Write(exceptionTemplate, Path.Combine(exceptionType.ModelsPackage.Trim('.'), $"{exceptionTemplate.Model.ExceptionTypeDefinitionName}{ImplementationFileExtension}")); } // package-info.java await Write(new PackageInfoTemplate { Model = new PackageInfoTemplateModel(cm) }, _packageInfoFileName); await Write(new PackageInfoTemplate { Model = new PackageInfoTemplateModel(cm, "implementation") }, Path.Combine("implementation", _packageInfoFileName)); }
/// <summary> /// Generate Python client code for given ServiceClient. /// </summary> /// <param name="serviceClient"></param> /// <returns></returns> public override async Task Generate(ServiceClient serviceClient) { var serviceClientTemplateModel = new AzureServiceClientTemplateModel(serviceClient); if (!string.IsNullOrWhiteSpace(Version)) { serviceClientTemplateModel.Version = Version; } // Service client var setupTemplate = new SetupTemplate { Model = serviceClientTemplateModel }; await Write(setupTemplate, "setup.py"); var serviceClientInitTemplate = new ServiceClientInitTemplate { Model = serviceClientTemplateModel }; await Write(serviceClientInitTemplate, Path.Combine(serviceClientTemplateModel.PackageName, "__init__.py")); var serviceClientTemplate = new AzureServiceClientTemplate { Model = serviceClientTemplateModel, }; await Write(serviceClientTemplate, Path.Combine(serviceClientTemplateModel.PackageName, serviceClientTemplateModel.Name.ToPythonCase() + ".py")); var versionTemplate = new VersionTemplate { Model = serviceClientTemplateModel, }; await Write(versionTemplate, Path.Combine(serviceClientTemplateModel.PackageName, "version.py")); var exceptionTemplate = new ExceptionTemplate { Model = serviceClientTemplateModel, }; await Write(exceptionTemplate, Path.Combine(serviceClientTemplateModel.PackageName, "exceptions.py")); var credentialTemplate = new CredentialTemplate { Model = serviceClientTemplateModel, }; await Write(credentialTemplate, Path.Combine(serviceClientTemplateModel.PackageName, "credentials.py")); //Models if (serviceClientTemplateModel.ModelTemplateModels.Any()) { var modelInitTemplate = new AzureModelInitTemplate { Model = new AzureModelInitTemplateModel(serviceClient, pageModels.Select(t => t.TypeDefinitionName)) }; await Write(modelInitTemplate, Path.Combine(serviceClientTemplateModel.PackageName, "models", "__init__.py")); foreach (var modelType in serviceClientTemplateModel.ModelTemplateModels) { var modelTemplate = new ModelTemplate { Model = modelType }; await Write(modelTemplate, Path.Combine(serviceClientTemplateModel.PackageName, "models", modelType.Name.ToPythonCase() + ".py")); } } //MethodGroups if (serviceClientTemplateModel.MethodGroupModels.Any()) { var methodGroupIndexTemplate = new MethodGroupInitTemplate { Model = serviceClientTemplateModel }; await Write(methodGroupIndexTemplate, Path.Combine(serviceClientTemplateModel.PackageName, "operations", "__init__.py")); foreach (var methodGroupModel in serviceClientTemplateModel.MethodGroupModels) { var methodGroupTemplate = new AzureMethodGroupTemplate { Model = methodGroupModel as AzureMethodGroupTemplateModel }; await Write(methodGroupTemplate, Path.Combine(serviceClientTemplateModel.PackageName, "operations", methodGroupModel.MethodGroupType.ToPythonCase() + ".py")); } } // Enums if (serviceClient.EnumTypes.Any()) { var enumTemplate = new EnumTemplate { Model = new EnumTemplateModel(serviceClient.EnumTypes), }; await Write(enumTemplate, Path.Combine(serviceClientTemplateModel.PackageName, "models", serviceClientTemplateModel.Name.ToPythonCase() + "_enums.py")); } // Page class foreach (var pageModel in pageModels) { var pageTemplate = new PageTemplate { Model = pageModel }; await Write(pageTemplate, Path.Combine(serviceClientTemplateModel.PackageName, "models", pageModel.TypeDefinitionName.ToPythonCase() + ".py")); } }
/// <summary> /// Refreshes the model from the database. /// </summary> public virtual void Refresh() { if (Page != null) { if (!Page.IsNew) { // Page.Id != Guid.Empty) { Page = Page.GetSingle(Page.Id, true); CanDelete = Page.GetScalar("SELECT count(*) FROM page WHERE page_parent_id = @0", Page.Id) == 0; GetRelated(); } else { Template = PageTemplate.GetSingle("pagetemplate_id = @0", Page.TemplateId); // Get placement ref title if (Page.ParentId != Guid.Empty || Page.Seqno > 1) { Page refpage = null; if (Page.Seqno > 1) { if (Page.ParentId != Guid.Empty) refpage = Page.GetSingle("page_parent_id = @0 AND page_seqno = @1", Page.ParentId, Page.Seqno - 1); else refpage = Page.GetSingle("page_parent_id IS NULL AND page_seqno = @0 AND page_sitetree_id = @1", Page.Seqno - 1, Page.SiteTreeId); //ÖS 2015-03-18 added siteid to the query } else { refpage = Page.GetSingle(Page.ParentId, true); } PlaceRef = refpage.Title; } // Get page position Parents = BuildParentPages(Sitemap.GetStructure(Page.SiteTreeInternalId, false), Page); Parents.Insert(0, new PagePlacement() { Level = 1, IsSelected = Page.ParentId == Guid.Empty }); Siblings = BuildSiblingPages(Page.Id, Page.ParentId, Page.Seqno, Page.ParentId, Page.SiteTreeInternalId); // Initialize regions foreach (var reg in Regions) reg.Body.Init(this); } } }
public PageTemplate SavePageTemplateProperties(PageTemplate template) { ManagePageTemplateFolders(template, FolderManagingType.CreateFolder); return(PageTemplateRepository.SaveProperties(template)); }
/// <summary> /// Generates Azure Java code for service client. /// </summary> /// <param name="serviceClient"></param> /// <returns></returns> public override async Task Generate(CodeModel cm) { var packagePath = $"src/main/java/{cm.Namespace.ToLower().Replace('.', '/')}"; // get Azure Java specific codeModel var codeModel = cm as CodeModelJva; if (codeModel == null) { throw new InvalidCastException("CodeModel is not a Azure Java CodeModel"); } // Service client var serviceClientTemplate = new AzureServiceClientTemplate { Model = codeModel }; await Write(serviceClientTemplate, $"{packagePath}/implementation/{codeModel.Name.ToPascalCase()}Impl{ImplementationFileExtension}"); // Service client interface var serviceClientInterfaceTemplate = new AzureServiceClientInterfaceTemplate { Model = codeModel }; await Write(serviceClientInterfaceTemplate, $"{packagePath}/{cm.Name.ToPascalCase()}{ImplementationFileExtension}"); // operations foreach (MethodGroupJva methodGroup in codeModel.AllOperations) { // Operation var operationsTemplate = new AzureMethodGroupTemplate { Model = methodGroup }; await Write(operationsTemplate, $"{packagePath}/implementation/{methodGroup.TypeName.ToPascalCase()}Impl{ImplementationFileExtension}"); // Operation interface var operationsInterfaceTemplate = new AzureMethodGroupInterfaceTemplate { Model = methodGroup }; await Write(operationsInterfaceTemplate, $"{packagePath}/{methodGroup.TypeName.ToPascalCase()}{ImplementationFileExtension}"); } //Models foreach (CompositeTypeJva modelType in cm.ModelTypes.Concat(codeModel.HeaderTypes)) { if (modelType.Extensions.ContainsKey(AzureExtensions.ExternalExtension) && (bool)modelType.Extensions[AzureExtensions.ExternalExtension]) { continue; } if (modelType.IsResource) { continue; } var modelTemplate = new ModelTemplate { Model = modelType }; await Write(modelTemplate, $"{packagePath}/models/{modelType.Name.ToPascalCase()}{ImplementationFileExtension}"); } //Enums foreach (EnumTypeJva enumType in cm.EnumTypes) { var enumTemplate = new EnumTemplate { Model = enumType }; await Write(enumTemplate, $"{packagePath}/models/{enumTemplate.Model.Name.ToPascalCase()}{ImplementationFileExtension}"); } // Page class foreach (var pageClass in codeModel.pageClasses) { var pageTemplate = new PageTemplate { Model = new PageJva(pageClass.Value, pageClass.Key.Key, pageClass.Key.Value), }; await Write(pageTemplate, $"{packagePath}/models/{pageTemplate.Model.TypeDefinitionName.ToPascalCase()}{ImplementationFileExtension}"); } // Exceptions foreach (CompositeTypeJv exceptionType in codeModel.ErrorTypes) { if (exceptionType.Name == "CloudError") { continue; } var exceptionTemplate = new ExceptionTemplate { Model = exceptionType }; await Write(exceptionTemplate, $"{packagePath}/models/{exceptionTemplate.Model.ExceptionTypeDefinitionName}{ImplementationFileExtension}"); } // package-info.java await Write(new PackageInfoTemplate { Model = new PackageInfoTemplateModel(cm) }, $"{packagePath}/{_packageInfoFileName}"); await Write(new PackageInfoTemplate { Model = new PackageInfoTemplateModel(cm, "implementation") }, $"{packagePath}/implementation/{_packageInfoFileName}"); await Write(new PackageInfoTemplate { Model = new PackageInfoTemplateModel(cm, "models") }, $"{packagePath}/models/{_packageInfoFileName}"); if (true == AutoRest.Core.Settings.Instance.Host?.GetValue <bool?>("regenerate-manager").Result) { await Write(new AzurePomTemplate { Model = codeModel }, "pom.xml"); } }
public PageTemplate UpdatePageTemplateProperties(PageTemplate pageTemplate) { ManageTemplateInheritance(pageTemplate); ManagePageTemplateFolders(pageTemplate, FolderManagingType.ChangeFolder); return(PageTemplateRepository.UpdatePageTemplateProperties(pageTemplate)); }
private void GetRelated() { // Clear related Regions.Clear(); Properties.Clear(); AttachedContent.Clear(); // Get group parents DisableGroups = SysGroup.GetParents(Page.GroupId); DisableGroups.Reverse(); // Get template & permalink Template = PageTemplate.GetSingle("pagetemplate_id = @0", Page.TemplateId); Permalink = Permalink.GetSingle(Page.PermalinkId); if (Permalink == null) { // Get the site tree using (var db = new DataContext()) { var sitetree = db.SiteTrees.Where(s => s.Id == Page.SiteTreeId).Single(); Permalink = new Permalink() { Id = Guid.NewGuid(), Type = Permalink.PermalinkType.PAGE, NamespaceId = sitetree.NamespaceId }; Page.PermalinkId = Permalink.Id; } } // Get placement ref title if (!IsSite) { if (Page.ParentId != Guid.Empty || Page.Seqno > 1) { Page refpage = null; if (Page.Seqno > 1) { if (Page.ParentId != Guid.Empty) { refpage = Page.GetSingle("page_parent_id = @0 AND page_seqno = @1", Page.ParentId, Page.Seqno - 1); } else { refpage = Page.GetSingle("page_parent_id IS NULL AND page_seqno = @0", Page.Seqno - 1); } } else { refpage = Page.GetSingle(Page.ParentId, true); } PlaceRef = refpage.Title; } } if (Template != null) { // Only load regions & properties if this is an original if (Page.OriginalId == Guid.Empty) { // Get regions var regions = RegionTemplate.Get("regiontemplate_template_id = @0", Template.Id, new Params() { OrderBy = "regiontemplate_seqno" }); foreach (var rt in regions) { var reg = Region.GetSingle("region_regiontemplate_id = @0 AND region_page_id = @1 and region_draft = @2", rt.Id, Page.Id, Page.IsDraft); if (reg != null) { Regions.Add(reg); } else { Regions.Add(new Region() { InternalId = rt.InternalId, Name = rt.Name, Type = rt.Type, PageId = Page.Id, RegiontemplateId = rt.Id, IsDraft = Page.IsDraft, IsPageDraft = Page.IsDraft }); } } // Get Properties foreach (string name in Template.Properties) { Property prp = Property.GetSingle("property_name = @0 AND property_parent_id = @1 AND property_draft = @2", name, Page.Id, Page.IsDraft); if (prp != null) { Properties.Add(prp); } else { Properties.Add(new Property() { Name = name, ParentId = Page.Id, IsDraft = Page.IsDraft }); } } } } else { throw new ArgumentException("Could not find page template for page {" + Page.Id.ToString() + "}"); } // Only load attachments if this is an original if (Page.OriginalId == Guid.Empty) { // Get attached content if (Page.Attachments.Count > 0) { // Content meta data is actually memcached, so this won't result in multiple queries Page.Attachments.ForEach(a => { Models.Content c = Models.Content.GetSingle(a, true); if (c != null) { AttachedContent.Add(c); } }); } } // Get page position Parents = BuildParentPages(Sitemap.GetStructure(Page.SiteTreeInternalId, false), Page); Parents.Insert(0, new PagePlacement() { Level = 1, IsSelected = Page.ParentId == Guid.Empty }); Siblings = BuildSiblingPages(Page.Id, Page.ParentId, Page.Seqno, Page.ParentId, Page.SiteTreeInternalId); // Only load extensions if this is an original if (Page.OriginalId == Guid.Empty) { // Get extensions Extensions = Page.GetExtensions(true); } // Initialize regions foreach (var reg in Regions) { reg.Body.InitManager(this); } // Get whether comments should be enabled EnableComments = Areas.Manager.Models.CommentSettingsModel.Get().EnablePages; if (!Page.IsNew && EnableComments) { using (var db = new DataContext()) { Comments = db.Comments. Include("CreatedBy"). Where(c => c.ParentId == Page.Id && c.ParentIsDraft == false). OrderByDescending(c => c.Created).ToList(); } } // Get the site if this is a site page if (Permalink.Type == Models.Permalink.PermalinkType.SITE) { using (var db = new DataContext()) { SiteTree = db.SiteTrees.Where(s => s.Id == Page.SiteTreeId).Single(); } } // Check if the page can be published if (Page.OriginalId != Guid.Empty) { CanPublish = Page.GetScalar("SELECT count(*) FROM page WHERE page_id=@0 AND page_draft=0", Page.OriginalId) > 0; } }
//POST: /admin/pages/create public async Task <IActionResult> Create(IFormCollection request, [Bind("Name", "Description", "Section")] Page page) { PageTemplate template = await _Db.PageTemplates.FindAsync( request.Int("templateId")); if (template == null) { return(NotFound($"The chosen template was not found.")); } if (!ModelState.IsValid) { return(BadRequest("Server side validation failed.")); } try { await _Db.AddAsync(page); // Create initial page revision PageRevision pageRevision = new PageRevision { Page = page, Template = template, CreatedBy = await _Db.Accounts.FindAsync(User.AccountId()) }; await _Db.AddAsync(pageRevision); // Create empty text fields, and associate to new page for (int i = 0; i < template.TextAreas; i++) { TextComponent textField = new TextComponent { SlotNo = i }; await _Db.AddAsync(textField); await _Db.AddAsync(new RevisionTextComponent { TextComponent = textField, PageRevision = pageRevision, }); } // Create empty media fields, and associate to new page for (int i = 0; i < template.MediaAreas; i++) { MediaComponent mediaComponent = new MediaComponent { SlotNo = i }; await _Db.AddAsync(mediaComponent); await _Db.AddAsync(new RevisionMediaComponent { PageRevisionId = pageRevision.Id, MediaComponentId = mediaComponent.Id }); } // Save all to database in one transaction await _Db.SaveChangesAsync(); // Return new page URL to the caller return(Ok(page.AbsoluteUrl)); } catch (Exception ex) { _Logger.LogWarning("Error creating new page: {0}", ex.Message); _Logger.LogWarning(ex.StackTrace); return(BadRequest("There was an error creating the page. Please try again later.")); } }
/// <summary> /// Generate Python client code for given ServiceClient. /// </summary> /// <param name="cm"></param> /// <returns></returns> public override async Task Generate(CodeModel cm) { var codeModel = cm as CodeModelPya; if (codeModel == null) { throw new Exception("CodeModel is not a Python Azure Code Model"); } // Service client var setupTemplate = new SetupTemplate { Model = codeModel }; await Write(setupTemplate, "setup.py"); var serviceClientInitTemplate = new ServiceClientInitTemplate { Model = codeModel }; await Write(serviceClientInitTemplate, Path.Combine(codeModel.PackageName, "__init__.py")); var serviceClientTemplate = new AzureServiceClientTemplate { Model = codeModel, }; await Write(serviceClientTemplate, Path.Combine(codeModel.PackageName, codeModel.Name.ToPythonCase() + ".py")); var versionTemplate = new VersionTemplate { Model = codeModel, }; await Write(versionTemplate, Path.Combine(codeModel.PackageName, "version.py")); var exceptionTemplate = new ExceptionTemplate { Model = codeModel, }; await Write(exceptionTemplate, Path.Combine(codeModel.PackageName, "exceptions.py")); var credentialTemplate = new CredentialTemplate { Model = codeModel, }; await Write(credentialTemplate, Path.Combine(codeModel.PackageName, "credentials.py")); //Models var models = codeModel.ModelTemplateModels.Where(each => !each.Extensions.ContainsKey(AzureExtensions.ExternalExtension)); if (models.Any()) { var modelInitTemplate = new AzureModelInitTemplate { Model = codeModel }; await Write(modelInitTemplate, Path.Combine(codeModel.PackageName, "models", "__init__.py")); foreach (var modelType in models) { var modelTemplate = new ModelTemplate { Model = modelType }; await Write(modelTemplate, Path.Combine(codeModel.PackageName, "models", modelType.Name.ToPythonCase() + ".py")); } } //MethodGroups if (codeModel.MethodGroupModels.Any()) { var methodGroupIndexTemplate = new MethodGroupInitTemplate { Model = codeModel }; await Write(methodGroupIndexTemplate, Path.Combine(codeModel.PackageName, "operations", "__init__.py")); foreach (var methodGroupModel in codeModel.MethodGroupModels) { var methodGroupTemplate = new AzureMethodGroupTemplate { Model = methodGroupModel as MethodGroupPya }; await Write(methodGroupTemplate, Path.Combine(codeModel.PackageName, "operations", ((string)methodGroupModel.TypeName).ToPythonCase() + ".py")); } } // Enums if (codeModel.EnumTypes.Any()) { var enumTemplate = new EnumTemplate { Model = codeModel.EnumTypes }; await Write(enumTemplate, Path.Combine(codeModel.PackageName, "models", codeModel.Name.ToPythonCase() + "_enums.py")); } // Page class foreach (var pageModel in codeModel.PageModels) { var pageTemplate = new PageTemplate { Model = pageModel }; await Write(pageTemplate, Path.Combine(codeModel.PackageName, "models", pageModel.TypeDefinitionName.ToPythonCase() + ".py")); } }
public void Add(PageTemplate template) { _session.Transact(session => session.Save(template)); }
private void GetRelated() { // Clear related Regions.Clear(); Properties.Clear(); AttachedContent.Clear(); // Get group parents DisableGroups = SysGroup.GetParents(Page.GroupId); DisableGroups.Reverse(); // Get template & permalink Template = PageTemplate.GetSingle("pagetemplate_id = @0", Page.TemplateId); Permalink = Permalink.GetSingle(Page.PermalinkId); if (Permalink == null) { // Get the site tree using (var db = new DataContext()) { var sitetree = db.SiteTrees.Where(s => s.Id == Page.SiteTreeId).Single(); Permalink = new Permalink() { Id = Guid.NewGuid(), Type = Permalink.PermalinkType.PAGE, NamespaceId = sitetree.NamespaceId }; Page.PermalinkId = Permalink.Id; } } Page.IsBlock = Template.IsBlock; // Get placement ref title if (!IsSite) { if (Page.ParentId != Guid.Empty || Page.Seqno > 1) { Page refpage = null; if (Page.Seqno > 1) { if (Page.ParentId != Guid.Empty) refpage = Page.GetSingle("page_parent_id = @0 AND page_seqno = @1", Page.ParentId, Page.Seqno - 1); else refpage = Page.GetSingle("page_parent_id IS NULL AND page_seqno = @0 AND page_sitetree_id = @1", Page.Seqno - 1, Page.SiteTreeId); //ÖS 2015-03-18 added siteid to the query } else { refpage = Page.GetSingle(Page.ParentId, true); } PlaceRef = !String.IsNullOrWhiteSpace(refpage.NavigationTitle) ? refpage.NavigationTitle : refpage.Title; } } if (Template != null) { // Only load regions & properties if this is an original if (Page.OriginalId == Guid.Empty) { // Get regions var regions = RegionTemplate.Get("regiontemplate_template_id = @0", Template.Id, new Params() { OrderBy = "regiontemplate_seqno" }); foreach (var rt in regions) { var reg = Region.GetSingle("region_regiontemplate_id = @0 AND region_page_id = @1 and region_draft = @2", rt.Id, Page.Id, Page.IsDraft); if (reg != null) Regions.Add(reg); else Regions.Add(new Region() { InternalId = rt.InternalId, Name = rt.Name, Type = rt.Type, PageId = Page.Id, RegiontemplateId = rt.Id, IsDraft = Page.IsDraft, IsPageDraft = Page.IsDraft }); } // Get Properties foreach (string name in Template.Properties) { Property prp = Property.GetSingle("property_name = @0 AND property_parent_id = @1 AND property_draft = @2", name, Page.Id, Page.IsDraft); if (prp != null) Properties.Add(prp); else Properties.Add(new Property() { Name = name, ParentId = Page.Id, IsDraft = Page.IsDraft }); } } } else throw new ArgumentException("Could not find page template for page {" + Page.Id.ToString() + "}"); // Only load attachments if this is an original if (Page.OriginalId == Guid.Empty) { // Get attached content if (Page.Attachments.Count > 0) { // Content meta data is actually memcached, so this won't result in multiple queries Page.Attachments.ForEach(a => { Models.Content c = Models.Content.GetSingle(a, true); if (c != null) AttachedContent.Add(c); }); } } // Get page position Parents = BuildParentPages(Sitemap.GetStructure(Page.SiteTreeInternalId, false), Page); Parents.Insert(0, new PagePlacement() { Level = 1, IsSelected = Page.ParentId == Guid.Empty }); Siblings = BuildSiblingPages(Page.Id, Page.ParentId, Page.Seqno, Page.ParentId, Page.SiteTreeInternalId); // Only load extensions if this is an original if (Page.OriginalId == Guid.Empty) { // Get extensions Extensions = Page.GetExtensions(true); } // Initialize regions foreach (var reg in Regions) reg.Body.InitManager(this); // Get whether comments should be enabled EnableComments = Areas.Manager.Models.CommentSettingsModel.Get().EnablePages; if (!Page.IsNew && EnableComments) { using (var db = new DataContext()) { Comments = db.Comments. Include("CreatedBy"). Where(c => c.ParentId == Page.Id && c.ParentIsDraft == false). OrderByDescending(c => c.Created).ToList(); } } // Get the site if this is a site page if (Permalink.Type == Models.Permalink.PermalinkType.SITE) { using (var db = new DataContext()) { SiteTree = db.SiteTrees.Where(s => s.Id == Page.SiteTreeId).Single(); } } // Check if the page can be published if (Page.OriginalId != Guid.Empty) { CanPublish = Page.GetScalar("SELECT count(*) FROM page WHERE page_id=@0 AND page_draft=0", Page.OriginalId) > 0; } }
/// <summary> /// Generates C# code for service client. /// </summary> /// <param name="serviceClient"></param> /// <returns></returns> public override async Task Generate(ServiceClient serviceClient) { // Service client var serviceClientTemplate = new AzureServiceClientTemplate { Model = new AzureServiceClientTemplateModel(serviceClient), }; await Write(serviceClientTemplate, serviceClient.Name + ".cs"); // Service client extensions var extensionsTemplate = new ExtensionsTemplate { Model = new AzureExtensionsTemplateModel(serviceClient, null), }; await Write(extensionsTemplate, serviceClient.Name + "Extensions.cs"); // Service client interface var serviceClientInterfaceTemplate = new ServiceClientInterfaceTemplate { Model = new AzureServiceClientTemplateModel(serviceClient), }; await Write(serviceClientInterfaceTemplate, "I" + serviceClient.Name + ".cs"); // Operations foreach (var group in serviceClient.MethodGroups) { // Operation var operationsTemplate = new AzureMethodGroupTemplate { Model = new AzureMethodGroupTemplateModel(serviceClient, group), }; await Write(operationsTemplate, operationsTemplate.Model.MethodGroupType + ".cs"); // Service client extensions var operationExtensionsTemplate = new ExtensionsTemplate { Model = new AzureExtensionsTemplateModel(serviceClient, group), }; await Write(operationExtensionsTemplate, operationExtensionsTemplate.Model.ExtensionName + "Extensions.cs"); // Operation interface var operationsInterfaceTemplate = new MethodGroupInterfaceTemplate { Model = new AzureMethodGroupTemplateModel(serviceClient, group), }; await Write(operationsInterfaceTemplate, "I" + operationsInterfaceTemplate.Model.MethodGroupType + ".cs"); } // Models foreach (var model in serviceClient.ModelTypes.Concat(serviceClient.HeaderTypes)) { if (model.Extensions.ContainsKey(AzureExtensions.ExternalExtension) && (bool)model.Extensions[AzureExtensions.ExternalExtension]) { continue; } var modelTemplate = new ModelTemplate { Model = new AzureModelTemplateModel(model), }; await Write(modelTemplate, Path.Combine("Models", model.Name + ".cs")); } // Enums foreach (var enumType in serviceClient.EnumTypes) { var enumTemplate = new EnumTemplate { Model = new EnumTemplateModel(enumType), }; await Write(enumTemplate, Path.Combine("Models", enumTemplate.Model.TypeDefinitionName + ".cs")); } // Page class foreach (var pageClass in pageClasses) { var pageTemplate = new PageTemplate { Model = new PageTemplateModel(pageClass.Value, pageClass.Key.Key, pageClass.Key.Value), }; await Write(pageTemplate, Path.Combine("Models", pageTemplate.Model.TypeDefinitionName + ".cs")); } // Exceptions foreach (var exceptionType in serviceClient.ErrorTypes) { if (exceptionType.Name == "CloudError") { continue; } var exceptionTemplate = new ExceptionTemplate { Model = new ModelTemplateModel(exceptionType), }; await Write(exceptionTemplate, Path.Combine("Models", exceptionTemplate.Model.ExceptionTypeDefinitionName + ".cs")); } }
public void Update(PageTemplate template) { _session.Transact(session => session.Update(template)); }
public bool UpdateTemplate(PageTemplate template) { return(repoTemplate.Update(template)); }
/// <summary> /// Generate Python client code for given ServiceClient. /// </summary> /// <param name="serviceClient"></param> /// <returns></returns> public override async Task Generate(ServiceClient serviceClient) { var serviceClientTemplateModel = new AzureServiceClientTemplateModel(serviceClient); if (!string.IsNullOrWhiteSpace(Version)) { serviceClientTemplateModel.Version = Version; } // Service client var setupTemplate = new SetupTemplate { Model = serviceClientTemplateModel }; await Write(setupTemplate, "setup.py"); var serviceClientInitTemplate = new ServiceClientInitTemplate { Model = serviceClientTemplateModel }; await Write(serviceClientInitTemplate, Path.Combine(serviceClient.Name.ToPythonCase(), "__init__.py")); var serviceClientTemplate = new AzureServiceClientTemplate { Model = serviceClientTemplateModel, }; await Write(serviceClientTemplate, Path.Combine(serviceClient.Name.ToPythonCase(), "api_client.py")); //Models if (serviceClientTemplateModel.ModelTemplateModels.Any()) { var modelInitTemplate = new AzureModelInitTemplate { Model = new AzureModelInitTemplateModel(serviceClient, pageModels.Select(t => t.TypeDefinitionName)) }; await Write(modelInitTemplate, Path.Combine(serviceClient.Name.ToPythonCase(), "models", "__init__.py")); foreach (var modelType in serviceClientTemplateModel.ModelTemplateModels) { var modelTemplate = new ModelTemplate { Model = modelType }; await Write(modelTemplate, Path.Combine(serviceClient.Name.ToPythonCase(), "models", modelType.Name.ToPythonCase() + ".py")); } } //MethodGroups if (serviceClientTemplateModel.MethodGroupModels.Any()) { var methodGroupIndexTemplate = new MethodGroupInitTemplate { Model = serviceClientTemplateModel }; await Write(methodGroupIndexTemplate, Path.Combine(serviceClient.Name.ToPythonCase(), "operations", "__init__.py")); foreach (var methodGroupModel in serviceClientTemplateModel.MethodGroupModels) { var methodGroupTemplate = new AzureMethodGroupTemplate { Model = methodGroupModel as AzureMethodGroupTemplateModel }; await Write(methodGroupTemplate, Path.Combine(serviceClient.Name.ToPythonCase(), "operations", methodGroupModel.MethodGroupType.ToPythonCase() + ".py")); } } // Enums if (serviceClient.EnumTypes.Any()) { var enumTemplate = new EnumTemplate { Model = new EnumTemplateModel(serviceClient.EnumTypes), }; await Write(enumTemplate, Path.Combine(serviceClient.Name.ToPythonCase(), "models", "enums.py")); } // Page class foreach (var pageModel in pageModels) { var pageTemplate = new PageTemplate { Model = pageModel }; await Write(pageTemplate, Path.Combine(serviceClient.Name.ToPythonCase(), "models", pageModel.TypeDefinitionName.ToPythonCase() + ".py")); } }
private void GetRelated() { // Clear related PageRegions.Clear() ; Properties.Clear() ; AttachedContent.Clear() ; // Get placement ref title if (Page.ParentId != Guid.Empty || Page.Seqno > 1) { Page refpage = null ; if (Page.Seqno > 1) { if (Page.ParentId != Guid.Empty) refpage = Page.GetSingle("page_parent_id = @0 AND page_seqno = @1", Page.ParentId, Page.Seqno - 1) ; else refpage = Page.GetSingle("page_parent_id IS NULL AND page_seqno = @0", Page.Seqno - 1) ; } else { refpage = Page.GetSingle(Page.ParentId, true) ; } PlaceRef = refpage.Title ; } // Get template & permalink Template = PageTemplate.GetSingle("pagetemplate_id = @0", Page.TemplateId) ; Permalink = Permalink.GetSingle(Page.PermalinkId) ; if (Permalink == null) { Permalink = new Permalink() { Id = Guid.NewGuid(), Type = Permalink.PermalinkType.PAGE, NamespaceId = new Guid("8FF4A4B4-9B6C-4176-AAA2-DB031D75AC03") } ; Page.PermalinkId = Permalink.Id ; } if (Template != null) { // Get page regions foreach (string name in Template.PageRegions) { Region reg = Region.GetSingle("region_name = @0 AND region_page_id = @1 AND region_draft = @2", name, Page.Id, Page.IsDraft) ; if (reg != null) PageRegions.Add(reg) ; else PageRegions.Add(new Region() { Name = name, PageId = Page.Id, IsDraft = Page.IsDraft, IsPageDraft = Page.IsDraft }) ; } // Get Properties foreach (string name in Template.Properties) { Property prp = Property.GetSingle("property_name = @0 AND property_parent_id = @1 AND property_draft = @2", name, Page.Id, Page.IsDraft) ; if (prp != null) Properties.Add(prp) ; else Properties.Add(new Property() { Name = name, ParentId = Page.Id, IsDraft = Page.IsDraft }) ; } } else throw new ArgumentException("Could not find page template for page {" + Page.Id.ToString() + "}") ; // Get attached content if (Page.Attachments.Count > 0) { // Content meta data is actually memcached, so this won't result in multiple queries Page.Attachments.ForEach(a => { Models.Content c = Models.Content.GetSingle(a) ; if (c != null) AttachedContent.Add(c) ; }) ; } // Get page position Parents = BuildParentPages(Sitemap.GetStructure(false), Page) ; Parents.Insert(0, new PagePlacement() { Level = 1, IsSelected = Page.ParentId == Guid.Empty }) ; Siblings = BuildSiblingPages(Page.Id, Page.ParentId, Page.Seqno, Page.ParentId) ; }
public static Boolean IsHidden(this MetaColumn column, PageTemplate currentPage) { var hideIn = column.Attributes.OfType<HideColumnInAttribute>().DefaultIfEmpty(new HideColumnInAttribute()).First() as HideColumnInAttribute; return hideIn.PageTemplates.Contains(currentPage); }
/// <summary> /// Gets the package from template. /// </summary> /// <param name="template">The template.</param> /// <returns></returns> private string GetPackageFromTemplate(PageTemplate template) { var currentTemplate = template; while (currentTemplate != null) { var title = currentTemplate.Title.ToString(); var parts = title.Split('.'); if (parts.Length > 1) { var expectedPackageName = this.StripInvalidCharacters(parts[0]); var path = HostingEnvironment.MapPath(this.GetPackageVirtualPath(expectedPackageName)); if (Directory.Exists(path)) { SystemManager.CurrentHttpContext.Items[PackageManager.CurrentPackageKey] = expectedPackageName; return expectedPackageName; } } currentTemplate = currentTemplate.ParentTemplate; } return null; }
/// <summary> /// Generates C# code for service client. /// </summary> /// <param name="serviceClient"></param> /// <returns></returns> public override async Task Generate(ServiceClient serviceClient) { var serviceClientTemplateModel = new AzureServiceClientTemplateModel(serviceClient); // Service client var serviceClientTemplate = new AzureServiceClientTemplate { Model = serviceClientTemplateModel, }; await Write(serviceClientTemplate, serviceClient.Name.ToPascalCase() + "Impl.java"); var serviceClientInterfaceTemplate = new AzureServiceClientInterfaceTemplate { Model = serviceClientTemplateModel, }; await Write(serviceClientInterfaceTemplate, serviceClient.Name.ToPascalCase() + ".java"); //Models foreach (var modelType in serviceClient.ModelTypes.Concat(serviceClient.HeaderTypes)) { if (modelType.Extensions.ContainsKey(AzureExtensions.ExternalExtension) && (bool)modelType.Extensions[AzureExtensions.ExternalExtension]) { continue; } var modelTemplate = new ModelTemplate { Model = new AzureModelTemplateModel(modelType, serviceClient) }; await Write(modelTemplate, Path.Combine("models", modelType.Name.ToPascalCase() + ".java")); } //MethodGroups if (serviceClientTemplateModel.MethodGroupModels.Any()) { foreach (var methodGroupModel in serviceClientTemplateModel.MethodGroupModels) { var methodGroupTemplate = new AzureMethodGroupTemplate { Model = (AzureMethodGroupTemplateModel)methodGroupModel }; await Write(methodGroupTemplate, methodGroupModel.MethodGroupType.ToPascalCase() + "Impl.java"); var methodGroupInterfaceTemplate = new AzureMethodGroupInterfaceTemplate { Model = (AzureMethodGroupTemplateModel)methodGroupModel }; await Write(methodGroupInterfaceTemplate, methodGroupModel.MethodGroupType.ToPascalCase() + ".java"); } } //Enums foreach (var enumType in serviceClient.EnumTypes) { var enumTemplate = new EnumTemplate { Model = new EnumTemplateModel(enumType), }; await Write(enumTemplate, Path.Combine("models", enumTemplate.Model.Name.ToPascalCase() + ".java")); } // Page class foreach (var pageClass in pageClasses) { var pageTemplate = new PageTemplate { Model = new PageTemplateModel(pageClass.Value, pageClass.Key.Key, pageClass.Key.Value), }; await Write(pageTemplate, Path.Combine("models", pageTemplate.Model.TypeDefinitionName + ".java")); } // Exceptions foreach (var exceptionType in serviceClient.ErrorTypes) { if (exceptionType.Name == "CloudError") { continue; } var exceptionTemplate = new ExceptionTemplate { Model = new ModelTemplateModel(exceptionType, serviceClient), }; await Write(exceptionTemplate, Path.Combine("models", exceptionTemplate.Model.ExceptionTypeDefinitionName + ".java")); } // package-info.java await Write(new PackageInfoTemplate { Model = new PackageInfoTemplateModel(serviceClient, serviceClient.Name) }, _packageInfoFileName); await Write(new PackageInfoTemplate { Model = new PackageInfoTemplateModel(serviceClient, serviceClient.Name, true) }, Path.Combine("models", _packageInfoFileName)); }
public HideColumnInAttribute(PageTemplate lookupTable) { PageTemplates = new PageTemplate[] { lookupTable }; }
private void AddPredefinedRegions(IDictionary <string, RegionModelData> regionModels, PageTemplate pageTemplate) { IEnumerable <XmlElement> regionsMetadata = pageTemplate.Metadata.GetEmbeddedFieldValues("regions"); if (regionsMetadata == null) { Logger.Debug($"No predefined Regions found in {pageTemplate.FormatIdentifier()}"); return; } foreach (XmlElement regionMetadata in regionsMetadata) { string regionName = regionMetadata.GetTextFieldValue("name"); string qualifiedRegionViewName = regionMetadata.GetTextFieldValue("view"); string moduleName; string regionViewName = StripModuleName(qualifiedRegionViewName, out moduleName); if (string.IsNullOrEmpty(regionName)) { regionName = regionViewName; } if (regionModels.ContainsKey(regionName)) { throw new DxaException($"Duplicate predefined Region name '{regionName}' encountered in {pageTemplate.FormatIdentifier()}."); } RegionModelData regionModel = new RegionModelData { Name = regionName, MvcData = new MvcData { ViewName = regionViewName, AreaName = moduleName }, Metadata = ExtractCustomMetadata(regionMetadata, excludeFields: _standardRegionMetadataFields), Entities = new List <EntityModelData>() }; regionModels.Add(regionName, regionModel); } }
/// <summary> /// Saves the current edit model. /// </summary> /// <returns>Whether the entity was updated or not</returns> public bool Save() { using (var db = new DataContext()) { InternalId = (!String.IsNullOrEmpty(InternalId) ? InternalId.Replace(" ", "") : Name.Replace(" ", "")).ToUpper() ; var site = db.SiteTrees.Where(s => s.Id == Id).SingleOrDefault() ; if (site == null) { // Create new dedicated namespace var name = new Namespace() { Id = Guid.NewGuid(), Name = "Site namespace", InternalId = InternalId, Description = "Namespace for the site " + InternalId, } ; db.Namespaces.Add(name) ; // Create site site = new SiteTree() ; site.Id = Id ; site.NamespaceId = NamespaceId = name.Id ; db.SiteTrees.Add(site) ; } // If we've changed namespace, update all related permalinks. if (site.NamespaceId != NamespaceId) ChangeNamespace(db, Id, NamespaceId) ; // Update the site tree site.NamespaceId = NamespaceId ; site.InternalId = InternalId ; site.Name = Name ; site.HostNames = HostNames ; site.Description = Description ; // Update the site template var template = db.PageTemplates.Include(pt => pt.RegionTemplates).Where(pt => pt.Id == Id && pt.IsSiteTemplate).SingleOrDefault() ; if (template == null) { template = new PageTemplate() ; db.PageTemplates.Add(template) ; template.Id = Id ; template.Name = Id.ToString() ; template.IsSiteTemplate = true ; } template.Preview = Template.Preview ; template.Properties = Template.Properties ; // Update the regions var currentRegions = new List<Guid>() ; foreach (var reg in Regions) { var region = template.RegionTemplates.Where(r => r.Id == reg.Id).SingleOrDefault() ; if (region == null) { region = new RegionTemplate() ; db.RegionTemplates.Add(region) ; template.RegionTemplates.Add(region) ; region.Id = Guid.NewGuid() ; region.TemplateId = template.Id ; region.Type = reg.Type ; } region.Name = reg.Name ; region.InternalId = reg.InternalId ; region.Seqno = reg.Seqno ; region.Description = reg.Description ; currentRegions.Add(region.Id) ; } // Delete removed regions foreach (var reg in template.RegionTemplates.Where(r => !currentRegions.Contains(r.Id)).ToList()) { db.RegionTemplates.Remove(reg) ; } // Check that we have a site page, if not, create it var page = db.Pages.Where(p => p.SiteTreeId == site.Id && p.TemplateId == site.Id).SingleOrDefault() ; if (page == null) { // Create page page = new Page() { Id = Guid.NewGuid(), SiteTreeId = site.Id, TemplateId = site.Id, ParentId = site.Id, Title = site.Id.ToString(), PermalinkId = Guid.NewGuid() } ; // Create published version var published = page.Clone() ; published.IsDraft = false ; // Create permalink var permalink = new Permalink() { Id = page.PermalinkId, NamespaceId = site.NamespaceId, Name = site.Id.ToString(), Type = "SITE" } ; // Attach to context page.Attach(db, EntityState.Added) ; published.Attach(db, EntityState.Added) ; permalink.Attach(db, EntityState.Added) ; } var ret = db.SaveChanges() > 0 ; Id = site.Id ; // Refresh host name configuration if (ret) WebPages.WebPiranha.RegisterDefaultHostNames() ; return ret ; } }
/// <summary> /// Saves the current edit model. /// </summary> /// <returns>Whether the entity was updated or not</returns> public bool Save() { using (var db = new DataContext()) { InternalId = (!String.IsNullOrEmpty(InternalId) ? InternalId.Replace(" ", "") : Name.Replace(" ", "")).ToUpper(); var site = db.SiteTrees.Where(s => s.Id == Id).SingleOrDefault(); if (site == null) { // Create new dedicated namespace var name = new Namespace() { Id = Guid.NewGuid(), Name = "Site namespace", InternalId = InternalId, Description = "Namespace for the site " + InternalId, }; db.Namespaces.Add(name); // Create site site = new SiteTree(); site.Id = Id; site.NamespaceId = NamespaceId = name.Id; db.SiteTrees.Add(site); } // If we've changed namespace, update all related permalinks. if (site.NamespaceId != NamespaceId) { ChangeNamespace(db, Id, NamespaceId); } // Update the site tree site.NamespaceId = NamespaceId; site.InternalId = InternalId; site.Name = Name; site.HostNames = HostNames; site.Description = Description; // Update the site template var template = db.PageTemplates.Include(pt => pt.RegionTemplates).Where(pt => pt.Id == Id && pt.IsSiteTemplate).SingleOrDefault(); if (template == null) { template = new PageTemplate(); db.PageTemplates.Add(template); template.Id = Id; template.Name = Id.ToString(); template.IsSiteTemplate = true; } template.Preview = Template.Preview; template.Properties = Template.Properties; // Update the regions var currentRegions = new List <Guid>(); foreach (var reg in Regions) { var region = template.RegionTemplates.Where(r => r.Id == reg.Id).SingleOrDefault(); if (region == null) { region = new RegionTemplate(); db.RegionTemplates.Add(region); template.RegionTemplates.Add(region); region.Id = Guid.NewGuid(); region.TemplateId = template.Id; region.Type = reg.Type; } region.Name = reg.Name; region.InternalId = reg.InternalId; region.Seqno = reg.Seqno; region.Description = reg.Description; currentRegions.Add(region.Id); } // Delete removed regions foreach (var reg in template.RegionTemplates.Where(r => !currentRegions.Contains(r.Id)).ToList()) { db.RegionTemplates.Remove(reg); } // Check that we have a site page, if not, create it var page = db.Pages.Where(p => p.SiteTreeId == site.Id && p.TemplateId == site.Id).SingleOrDefault(); if (page == null) { // Create page page = new Page() { Id = Guid.NewGuid(), SiteTreeId = site.Id, TemplateId = site.Id, ParentId = site.Id, Title = site.Id.ToString(), PermalinkId = Guid.NewGuid() }; // Create published version var published = page.Clone(); published.IsDraft = false; // Create permalink var permalink = new Permalink() { Id = page.PermalinkId, NamespaceId = site.NamespaceId, Name = site.Id.ToString(), Type = "SITE" }; // Attach to context page.Attach(db, EntityState.Added); published.Attach(db, EntityState.Added); permalink.Attach(db, EntityState.Added); } var ret = db.SaveChanges() > 0; Id = site.Id; // Refresh host name configuration if (ret) { WebPages.WebPiranha.RegisterDefaultHostNames(); } return(ret); } }
public HideColumnInAttribute() { PageTemplates = new PageTemplate[0]; }
public HideColumnFieldsManager(MetaTable table, PageTemplate currentPage) { _table = table; _currentPage = currentPage; }
public static void Clean(this PageTemplate input) { input.Description = Clean(input.Description); input.Name = Clean(input.Name); }
/// <summary> /// Generates C# code for service client. /// </summary> /// <param name="serviceClient"></param> /// <returns></returns> public override async Task Generate(ServiceClient serviceClient) { // Service client var serviceClientTemplate = new AzureServiceClientTemplate { Model = new AzureServiceClientTemplateModel(serviceClient, InternalConstructors), }; await Write(serviceClientTemplate, serviceClient.Name + ".cs"); // Service client extensions if (serviceClient.Methods.Any(m => m.Group == null)) { var extensionsTemplate = new ExtensionsTemplate { Model = new AzureExtensionsTemplateModel(serviceClient, null, SyncMethods), }; await Write(extensionsTemplate, serviceClient.Name + "Extensions.cs"); } // Service client interface var serviceClientInterfaceTemplate = new ServiceClientInterfaceTemplate { Model = new AzureServiceClientTemplateModel(serviceClient, InternalConstructors), }; await Write(serviceClientInterfaceTemplate, "I" + serviceClient.Name + ".cs"); // Operations foreach (var group in serviceClient.MethodGroups) { // Operation var operationsTemplate = new AzureMethodGroupTemplate { Model = new AzureMethodGroupTemplateModel(serviceClient, group), }; await Write(operationsTemplate, operationsTemplate.Model.MethodGroupType + ".cs"); // Service client extensions var operationExtensionsTemplate = new ExtensionsTemplate { Model = new AzureExtensionsTemplateModel(serviceClient, group, SyncMethods), }; await Write(operationExtensionsTemplate, operationExtensionsTemplate.Model.ExtensionName + "Extensions.cs"); // Operation interface var operationsInterfaceTemplate = new MethodGroupInterfaceTemplate { Model = new AzureMethodGroupTemplateModel(serviceClient, group), }; await Write(operationsInterfaceTemplate, "I" + operationsInterfaceTemplate.Model.MethodGroupType + ".cs"); } // Models foreach (var model in serviceClient.ModelTypes.Concat(serviceClient.HeaderTypes)) { if (model.Extensions.ContainsKey(AzureExtensions.ExternalExtension) && (bool) model.Extensions[AzureExtensions.ExternalExtension]) { continue; } var modelTemplate = new ModelTemplate { Model = new AzureModelTemplateModel(model), }; await Write(modelTemplate, Path.Combine(Settings.ModelsName, model.Name + ".cs")); } // Enums foreach (var enumType in serviceClient.EnumTypes) { var enumTemplate = new EnumTemplate { Model = new EnumTemplateModel(enumType), }; await Write(enumTemplate, Path.Combine(Settings.ModelsName, enumTemplate.Model.TypeDefinitionName + ".cs")); } // Page class foreach (var pageClass in pageClasses) { var pageTemplate = new PageTemplate { Model = new PageTemplateModel(pageClass.Value, pageClass.Key.Key, pageClass.Key.Value), }; await Write(pageTemplate, Path.Combine(Settings.ModelsName, pageTemplate.Model.TypeDefinitionName + ".cs")); } // Exceptions foreach (var exceptionType in serviceClient.ErrorTypes) { if (exceptionType.Name == "CloudError") { continue; } var exceptionTemplate = new ExceptionTemplate { Model = new ModelTemplateModel(exceptionType), }; await Write(exceptionTemplate, Path.Combine(Settings.ModelsName, exceptionTemplate.Model.ExceptionTypeDefinitionName + ".cs")); } }