PageRenderTime 47ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/MySQLDefault.aspx.cs

https://bitbucket.org/Offroadcode/usitebuilderimporter
C# | 703 lines | 461 code | 115 blank | 127 comment | 27 complexity | 4f692b3860997d3b61233adfd34b72c3 MD5 | raw file
  1. // --------------------------------------------------------------------------------------------------------------------
  2. // <copyright file="MySQLDefault.aspx.cs" company="??">
  3. // Copyright
  4. // </copyright>
  5. // <summary>
  6. // Defines the _Default type.
  7. // </summary>
  8. // --------------------------------------------------------------------------------------------------------------------
  9. using System;
  10. using System.Configuration;
  11. using System.IO;
  12. using System.Text;
  13. using System.Web.UI;
  14. using MySql.Data.MySqlClient;
  15. /// <summary>
  16. /// Default class
  17. /// </summary>
  18. public partial class Default : Page
  19. {
  20. #region Public Methods
  21. /// <summary>
  22. /// Get Templates Default Doc Type
  23. /// </summary>
  24. /// <param name="nodeid">
  25. /// The nodeid.
  26. /// </param>
  27. /// <returns>
  28. /// Node ID
  29. /// </returns>
  30. public static string GetTemplatesDefaultDocType(string nodeid)
  31. {
  32. var rtnText = string.Empty;
  33. var strSql =
  34. "SELECT cmsDocumentType.contentTypeNodeId, cmsDocumentType.templateNodeId, cmsDocumentType.IsDefault, cmsContentType.alias FROM cmsDocumentType INNER JOIN cmsContentType ON cmsDocumentType.contentTypeNodeId = cmsContentType.nodeId where isDefault=1 and templateNodeId="
  35. + nodeid;
  36. var conn = new MySqlConnection(ConfigurationManager.AppSettings["ImportDB"]);
  37. var cmd = new MySqlCommand(strSql, conn);
  38. conn.Open();
  39. var reader = cmd.ExecuteReader();
  40. while (reader.Read())
  41. {
  42. rtnText = ": Vega.USiteBuilder.TemplateBase<uSiteBuilderImport.Web.DocumentTypes." + reader["alias"] + ">";
  43. }
  44. reader.Close();
  45. conn.Close();
  46. return rtnText != string.Empty ? rtnText : ": Vega.USiteBuilder.TemplateBase";
  47. }
  48. /// <summary>
  49. /// The create child doc type.
  50. /// </summary>
  51. /// <param name="nodeid">
  52. /// The nodeid.
  53. /// </param>
  54. /// <param name="alias">
  55. /// The alias.
  56. /// </param>
  57. /// <param name="path">
  58. /// The path.
  59. /// </param>
  60. public void CreateChildDocType(string nodeid, string alias, string path)
  61. {
  62. // string strSQL = "SELECT [pk],[nodeId],[alias],[icon],[thumbnail],[description],[masterContentType] FROM [cmsContentType] where masterContentType=" + nodeid + " order by Alias";
  63. var strSql =
  64. "SELECT cmsContentType.pk, cmsContentType.nodeId, cmsContentType.alias, cmsContentType.icon, cmsContentType.thumbnail, cmsContentType.description, "
  65. + "cmsContentType.masterContentType, umbracoNode.text " + "FROM cmsContentType INNER JOIN "
  66. + "umbracoNode ON cmsContentType.nodeId = umbracoNode.id " + "WHERE cmsContentType.masterContentType = "
  67. + nodeid + " ORDER BY alias";
  68. var conn = new MySqlConnection(ConfigurationManager.AppSettings["ImportDB"]);
  69. var cmd = new MySqlCommand(strSql, conn);
  70. conn.Open();
  71. var reader = cmd.ExecuteReader();
  72. while (reader.Read())
  73. {
  74. // Start file
  75. var sb = new StringBuilder();
  76. this.Response.Write("Create Doc Type for child " + reader["alias"] + " (" + reader["nodeid"] + ")<br/>");
  77. sb.AppendLine("using System;");
  78. sb.AppendLine("using System.Collections.Generic;");
  79. sb.AppendLine("using System.Linq;");
  80. sb.AppendLine("using System.Web;");
  81. sb.AppendLine("using Vega.USiteBuilder;");
  82. sb.AppendLine("namespace uSiteBuilderImport.Web.DocumentTypes");
  83. sb.AppendLine("{");
  84. sb.AppendLine();
  85. sb.Append(
  86. "[DocumentType(Name=\"" + reader["text"] + "\",IconUrl=\"" + reader["icon"] + "\""
  87. + GetAllowedTemplates(reader["nodeid"].ToString()));
  88. sb.Append(GetAllowedContentType(reader["nodeid"].ToString()));
  89. sb.Append(")]");
  90. sb.AppendLine();
  91. sb.AppendLine("public class " + reader["alias"] + " : uSiteBuilderImport.Web.DocumentTypes." + alias);
  92. sb.AppendLine("{");
  93. sb.AppendLine(CreateProperties(reader["nodeid"].ToString()));
  94. sb.AppendLine("}");
  95. sb.AppendLine("}");
  96. if (!Directory.Exists(this.Server.MapPath("DocTypes/")))
  97. {
  98. Directory.CreateDirectory(this.Server.MapPath("DocumentTypes/"));
  99. }
  100. using (var writer = new StreamWriter(path + reader["alias"] + ".cs"))
  101. {
  102. writer.Write(sb.ToString());
  103. }
  104. // Make recursive call
  105. this.CreateChildDocType(reader["nodeid"].ToString(), reader["alias"].ToString(), path);
  106. }
  107. reader.Close();
  108. conn.Close();
  109. }
  110. /// <summary>
  111. /// Create Child Master Pages
  112. /// </summary>
  113. /// <param name="nodeid">
  114. /// The nodeid.
  115. /// </param>
  116. /// <param name="parentAlias">
  117. /// The parent alias.
  118. /// </param>
  119. public void CreateChildMasterPages(string nodeid, string parentAlias)
  120. {
  121. var strSql = "SELECT pk, nodeId, master, alias, design FROM cmsTemplate WHERE master =" + nodeid;
  122. var conn = new MySqlConnection(ConfigurationManager.AppSettings["ImportDB"]);
  123. var cmd = new MySqlCommand(strSql, conn);
  124. conn.Open();
  125. var reader = cmd.ExecuteReader();
  126. while (reader.Read())
  127. {
  128. var alias = reader["alias"].ToString().Replace(" ", string.Empty);
  129. this.Response.Write("Creating Child MasterPage: " + alias + " (" + reader["nodeId"] + ")</br>");
  130. var sb = new StringBuilder();
  131. // Create Master Page
  132. sb.AppendLine(
  133. "<%@ Master Language=\"C#\" MasterPageFile=\"~/MasterPages/" + parentAlias
  134. + ".master\" AutoEventWireup=\"true\" CodeBehind=\"" + alias
  135. + ".master.cs\" Inherits=\"uSiteBuilderImport.Web.MasterPages." + alias + "\" %>");
  136. // Get Markup
  137. sb.AppendLine(GetMarkUp(reader["nodeid"].ToString()));
  138. using (var writer = new StreamWriter(this.Server.MapPath("MasterPages/" + alias + ".Master")))
  139. {
  140. writer.Write(sb.ToString());
  141. }
  142. sb.Length = 0;
  143. // Create Code behind file
  144. sb.AppendLine("using System;");
  145. sb.AppendLine("using System.Collections.Generic;");
  146. sb.AppendLine("using System.Linq;");
  147. sb.AppendLine("using System.Web;");
  148. sb.AppendLine("using System.Web.UI;");
  149. sb.AppendLine("using System.Web.UI.WebControls;");
  150. sb.AppendLine("namespace uSiteBuilderImport.Web.MasterPages");
  151. sb.AppendLine("{");
  152. sb.AppendLine("public partial class " + alias + GetTemplatesDefaultDocType(reader["nodeId"].ToString()));
  153. sb.AppendLine("{");
  154. sb.AppendLine(" protected void Page_Load(object sender, EventArgs e)");
  155. sb.AppendLine("{");
  156. sb.AppendLine("}");
  157. sb.AppendLine("}");
  158. sb.AppendLine("}");
  159. var path = this.Server.MapPath("MasterPages/");
  160. using (var writer = new StreamWriter(path + alias + ".Master.cs"))
  161. {
  162. writer.Write(sb.ToString());
  163. }
  164. this.CreateChildMasterPages(reader["nodeId"].ToString(), alias);
  165. }
  166. reader.Close();
  167. conn.Close();
  168. }
  169. /// <summary>
  170. /// Create Master Pages
  171. /// </summary>
  172. public void CreateMasterPages()
  173. {
  174. const string StrSql = "SELECT pk, nodeId, master, alias, design FROM cmsTemplate WHERE (master IS NULL) order by alias";
  175. var conn = new MySqlConnection(ConfigurationManager.AppSettings["ImportDB"]);
  176. var cmd = new MySqlCommand(StrSql, conn);
  177. conn.Open();
  178. var reader = cmd.ExecuteReader();
  179. while (reader.Read())
  180. {
  181. // string alias = dr["alias"].ToString().Replace(" ", "");
  182. var alias = reader["alias"].ToString();
  183. this.Response.Write(alias + " (" + reader["nodeId"] + ")</br>");
  184. var sb = new StringBuilder();
  185. // Create Master Page
  186. sb.AppendLine(
  187. "<%@ Master Language=\"C#\" AutoEventWireup=\"true\" CodeBehind=\"" + alias
  188. + ".master.cs\" Inherits=\"uSiteBuilderImport.Web.MasterPages." + reader["alias"] + "\" %>");
  189. // Get Markup
  190. sb.AppendLine(GetMarkUp(reader["nodeid"].ToString()));
  191. // Clean MarkUp
  192. if (!Directory.Exists(this.Server.MapPath("MasterPages/")))
  193. {
  194. Directory.CreateDirectory(this.Server.MapPath("MasterPages/"));
  195. }
  196. using (var writer = new StreamWriter(this.Server.MapPath("MasterPages/") + alias + ".Master"))
  197. {
  198. writer.Write(sb.ToString());
  199. }
  200. sb.Length = 0;
  201. // Create Code behind file
  202. sb.AppendLine("using System;");
  203. sb.AppendLine("using System.Collections.Generic;");
  204. sb.AppendLine("using System.Linq;");
  205. sb.AppendLine("using System.Web;");
  206. sb.AppendLine("using System.Web.UI;");
  207. sb.AppendLine("using System.Web.UI.WebControls;");
  208. sb.AppendLine("namespace uSiteBuilderImport.Web.MasterPages");
  209. sb.AppendLine("{");
  210. sb.AppendLine("public partial class " + alias + GetTemplatesDefaultDocType(reader["nodeId"].ToString()));
  211. sb.AppendLine("{");
  212. sb.AppendLine(" protected void Page_Load(object sender, EventArgs e)");
  213. sb.AppendLine("{");
  214. sb.AppendLine("}");
  215. sb.AppendLine("}");
  216. sb.AppendLine("}");
  217. using (var writer = new StreamWriter(this.Server.MapPath("MasterPages/" + alias + ".Master.cs")))
  218. {
  219. writer.Write(sb.ToString());
  220. }
  221. this.CreateChildMasterPages(reader["nodeId"].ToString(), alias);
  222. }
  223. reader.Close();
  224. conn.Close();
  225. }
  226. #endregion
  227. #region Methods
  228. /// <summary>
  229. /// Page Load event
  230. /// </summary>
  231. /// <param name="sender">
  232. /// The sender.
  233. /// </param>
  234. /// <param name="e">
  235. /// The event arguments
  236. /// </param>
  237. protected void Page_Load(object sender, EventArgs e)
  238. {
  239. // Clear and create Directories
  240. var path = this.Server.MapPath("MasterPages/");
  241. if (Directory.Exists(path))
  242. {
  243. Directory.Delete(path, true);
  244. }
  245. Directory.CreateDirectory(path);
  246. path = this.Server.MapPath("DocumentTypes");
  247. if (Directory.Exists(path))
  248. {
  249. Directory.Delete(path, true);
  250. }
  251. Directory.CreateDirectory(path);
  252. this.Response.Write("<br/>-------------------------------------------------------------<br/>");
  253. this.Response.Write("Creating MasterPages");
  254. this.Response.Write("<br/>-------------------------------------------------------------<br/><br/>");
  255. this.CreateMasterPages();
  256. this.Response.Write("<br/>-------------------------------------------------------------<br/>");
  257. this.Response.Write("Creating DocTypes");
  258. this.Response.Write("<br/>-------------------------------------------------------------<br/><br/>");
  259. this.CreateDocTypes();
  260. this.Response.Write("<br/>-------------------------------------------------------------<br/>");
  261. this.Response.Write("End");
  262. this.Response.Write("<br/>-------------------------------------------------------------<br/><br/>");
  263. }
  264. /// <summary>
  265. /// The get allowed content type.
  266. /// </summary>
  267. /// <param name="nodeid">
  268. /// The nodeid.
  269. /// </param>
  270. /// <returns>
  271. /// The allowed content type.
  272. /// </returns>
  273. private static string GetAllowedContentType(string nodeid)
  274. {
  275. var strSql =
  276. "SELECT cmsContentTypeAllowedContentType.Id, cmsContentTypeAllowedContentType.AllowedId, cmsContentType.alias "
  277. + "FROM cmsContentTypeAllowedContentType INNER JOIN "
  278. +
  279. "cmsContentType ON cmsContentTypeAllowedContentType.AllowedId = cmsContentType.nodeId where cmsContentTypeAllowedContentType.id ="
  280. + nodeid;
  281. var conn = new MySqlConnection(ConfigurationManager.AppSettings["ImportDB"]);
  282. var cmd = new MySqlCommand(strSql, conn);
  283. conn.Open();
  284. var reader = cmd.ExecuteReader();
  285. var sb = new StringBuilder();
  286. while (reader.Read())
  287. {
  288. sb.Append("typeof(" + reader["alias"] + "),");
  289. }
  290. reader.Close();
  291. conn.Close();
  292. if (sb.ToString() != string.Empty)
  293. {
  294. return ",AllowedChildNodeTypes = new Type[] {" + sb.ToString().Remove(sb.Length - 1, 1) + "}";
  295. }
  296. return string.Empty;
  297. }
  298. /// <summary>
  299. /// The get data type.
  300. /// </summary>
  301. /// <param name="dataTypeId">
  302. /// The data type id.
  303. /// </param>
  304. /// <returns>
  305. /// The data type.
  306. /// </returns>
  307. private static string GetDataType(int dataTypeId)
  308. {
  309. var dt = (Enums.UmbracoPropertyType)dataTypeId;
  310. if (dt.ToString() != dataTypeId.ToString())
  311. {
  312. return "UmbracoPropertyType." + dt;
  313. }
  314. // Custom DataType
  315. var strSql = "SELECT text FROM umbracoNode where id=" + dataTypeId;
  316. var conn = new MySqlConnection(ConfigurationManager.AppSettings["ImportDB"]);
  317. var cmd = new MySqlCommand(strSql, conn);
  318. conn.Open();
  319. var reader = cmd.ExecuteReader();
  320. var rtnText = string.Empty;
  321. while (reader.Read())
  322. {
  323. rtnText = reader["text"].ToString();
  324. }
  325. reader.Close();
  326. conn.Close();
  327. return "UmbracoPropertyType.Other, OtherTypeName=\"" + rtnText + "\"";
  328. }
  329. /// <summary>
  330. /// The get default template doc type.
  331. /// </summary>
  332. /// <param name="nodeid">
  333. /// The nodeid.
  334. /// </param>
  335. /// <returns>
  336. /// The default template doc type.
  337. /// </returns>
  338. private static string GetDefaultTemplateDocType(string nodeid)
  339. {
  340. // At the moment this is switched off as default Doc Types is set via the allowed templates.
  341. var strSql =
  342. "SELECT cmsDocumentType.contentTypeNodeId, cmsDocumentType.templateNodeId, cmsDocumentType.IsDefault, cmsContentType.alias "
  343. + "FROM cmsDocumentType INNER JOIN "
  344. + "cmsContentType ON cmsDocumentType.contentTypeNodeId = cmsContentType.nodeId "
  345. + "WHERE (cmsDocumentType.IsDefault = 1) and contentTypeNodeId=" + nodeid;
  346. var conn = new MySqlConnection(ConfigurationManager.AppSettings["ImportDB"]);
  347. var cmd = new MySqlCommand(strSql, conn);
  348. conn.Open();
  349. var sb = new StringBuilder();
  350. var reader = cmd.ExecuteReader();
  351. while (reader.Read())
  352. {
  353. sb.Append(reader["alias"].ToString());
  354. }
  355. reader.Close();
  356. conn.Close();
  357. return string.Empty;
  358. }
  359. /// <summary>
  360. /// get mark up.
  361. /// </summary>
  362. /// <param name="nodeid">
  363. /// The nodeid.
  364. /// </param>
  365. /// <returns>
  366. /// The get mark up.
  367. /// </returns>
  368. private static string GetMarkUp(string nodeid)
  369. {
  370. var rtnText = string.Empty;
  371. var strSql = "SELECT pk, nodeId, master, alias, design FROM cmsTemplate where nodeid=" + nodeid;
  372. var conn = new MySqlConnection(ConfigurationManager.AppSettings["ImportDB"]);
  373. var cmd = new MySqlCommand(strSql, conn);
  374. conn.Open();
  375. var reader = cmd.ExecuteReader();
  376. while (reader.Read())
  377. {
  378. rtnText = reader["design"].ToString();
  379. }
  380. reader.Close();
  381. conn.Close();
  382. var startPos = rtnText.IndexOf(">");
  383. return rtnText.Substring(startPos + 1);
  384. }
  385. /// <summary>
  386. /// The get tab.
  387. /// </summary>
  388. /// <param name="tabid">
  389. /// The tabid.
  390. /// </param>
  391. /// <returns>
  392. /// The tab.
  393. /// </returns>
  394. private static string GetTab(string tabid)
  395. {
  396. if (tabid != string.Empty)
  397. {
  398. var strSql = "SELECT id,text,sortorder FROM cmsTab where id=" + tabid;
  399. var conn = new MySqlConnection(ConfigurationManager.AppSettings["ImportDB"]);
  400. var cmd = new MySqlCommand(strSql, conn);
  401. conn.Open();
  402. var tab = string.Empty;
  403. var reader = cmd.ExecuteReader();
  404. while (reader.Read())
  405. {
  406. tab = reader["text"].ToString();
  407. }
  408. reader.Close();
  409. conn.Close();
  410. if (tab != string.Empty)
  411. {
  412. return ", Tab=\"" + tab + "\"";
  413. }
  414. return string.Empty;
  415. }
  416. return string.Empty;
  417. }
  418. /// <summary>
  419. /// The get validation.
  420. /// </summary>
  421. /// <param name="isMandatory">
  422. /// The is mandatory.
  423. /// </param>
  424. /// <param name="rgx">
  425. /// The rgx.
  426. /// </param>
  427. /// <returns>
  428. /// The validation.
  429. /// </returns>
  430. private static string GetValidation(string isMandatory, string rgx)
  431. {
  432. var sb = new StringBuilder();
  433. sb.Append(isMandatory == "True" ? ",Mandatory=true" : ",Mandatory=false");
  434. if (rgx != string.Empty)
  435. {
  436. sb.Append(",ValidationRegExp=\"" + rgx.Replace("\\", "\\\\") + "\"");
  437. }
  438. return sb.ToString();
  439. }
  440. /// <summary>
  441. /// The create doc types.
  442. /// </summary>
  443. private void CreateDocTypes()
  444. {
  445. var path = this.Server.MapPath("DocumentTypes");
  446. path = path + "\\";
  447. const string StrSql =
  448. "SELECT cmsContentType.pk, cmsContentType.nodeId, cmsContentType.alias, cmsContentType.icon, cmsContentType.thumbnail, cmsContentType.description, "
  449. + "cmsContentType.masterContentType, umbracoNode.text FROM cmsContentType INNER JOIN "
  450. + "umbracoNode ON cmsContentType.nodeId = umbracoNode.id "
  451. + "WHERE (cmsContentType.masterContentType = 0) or (cmsContentType.masterContentType is null) " + "ORDER BY cmsContentType.alias";
  452. var conn = new MySqlConnection(ConfigurationManager.AppSettings["ImportDB"]);
  453. var cmd = new MySqlCommand(StrSql, conn);
  454. conn.Open();
  455. var reader = cmd.ExecuteReader();
  456. while (reader.Read())
  457. {
  458. var sb = new StringBuilder();
  459. sb.AppendLine(GetAllowedContentType(reader["nodeid"].ToString()));
  460. this.Response.Write("Create Doc Type for " + reader["text"] + " (" + reader["nodeid"] + ")<br/>");
  461. sb.AppendLine("using System;");
  462. sb.AppendLine("using System.Collections.Generic;");
  463. sb.AppendLine("using System.Linq;");
  464. sb.AppendLine("using System.Web;");
  465. sb.AppendLine("using Vega.USiteBuilder;");
  466. sb.AppendLine("namespace uSiteBuilderImport.Web.DocumentTypes");
  467. sb.AppendLine("{");
  468. // AllowedTemplates = new string[] { "Property" }
  469. sb.AppendLine(
  470. "[DocumentType(Name=\"" + reader["text"] + "\",IconUrl=\"" + reader["icon"] + "\""
  471. + GetAllowedTemplates(reader["nodeid"].ToString()) + ")]");
  472. sb.AppendLine("public class " + reader["alias"] + " : Vega.USiteBuilder.DocumentTypeBase");
  473. sb.AppendLine("{");
  474. sb.AppendLine(CreateProperties(reader["nodeid"].ToString()));
  475. // Response.Write("Check if any child docs types of " + dr["nodeid"] + "<br/>");
  476. this.CreateChildDocType(reader["nodeid"].ToString(), reader["alias"].ToString(), path);
  477. sb.AppendLine("}");
  478. sb.AppendLine("}");
  479. using (var writer = new StreamWriter(path + reader["alias"] + ".cs"))
  480. {
  481. writer.Write(sb.ToString());
  482. }
  483. }
  484. reader.Close();
  485. conn.Close();
  486. }
  487. /// <summary>
  488. /// create properties.
  489. /// </summary>
  490. /// <param name="nodeid">
  491. /// The nodeid.
  492. /// </param>
  493. /// <returns>
  494. /// The create properties.
  495. /// </returns>
  496. private static string CreateProperties(string nodeid)
  497. {
  498. var strSql =
  499. "SELECT id,dataTypeId,contentTypeId,tabId,Alias,Name,helpText,sortOrder,mandatory,validationRegExp,Description FROM cmsPropertyType where contentTypeId="
  500. + nodeid + " order by sortOrder";
  501. var sb = new StringBuilder();
  502. var conn = new MySqlConnection(ConfigurationManager.AppSettings["ImportDB"]);
  503. var cmd = new MySqlCommand(strSql, conn);
  504. conn.Open();
  505. var reader = cmd.ExecuteReader();
  506. while (reader.Read())
  507. {
  508. sb.AppendLine(
  509. "[DocumentTypeProperty(" + GetDataType(Convert.ToInt32(reader["dataTypeId"])) + ",Name=\"" + reader["Name"]
  510. + "\",Description=\""
  511. + reader["Description"].ToString().Replace(Environment.NewLine, string.Empty).Replace("\"", "\\\"") + "\""
  512. + GetTab(reader["tabId"].ToString())
  513. + GetValidation(reader["mandatory"].ToString(), reader["validationRegExp"].ToString()) + ")]");
  514. sb.AppendLine("public string " + reader["alias"] + " { get; set; }");
  515. }
  516. reader.Close();
  517. conn.Close();
  518. return sb.ToString();
  519. }
  520. /// <summary>
  521. /// The get allowed templates.
  522. /// </summary>
  523. /// <param name="nodeid">
  524. /// The nodeid.
  525. /// </param>
  526. /// <returns>
  527. /// The allowed templates.
  528. /// </returns>
  529. private static string GetAllowedTemplates(string nodeid)
  530. {
  531. string strSql =
  532. "SELECT cmsDocumentType.contentTypeNodeId, cmsDocumentType.templateNodeId, cmsDocumentType.IsDefault, cmsTemplate.alias "
  533. + "FROM cmsDocumentType INNER JOIN "
  534. + "cmsTemplate ON cmsDocumentType.templateNodeId = cmsTemplate.nodeId "
  535. + "WHERE cmsDocumentType.contentTypeNodeId =" + nodeid + " order by isDefault desc";
  536. var conn = new MySqlConnection(ConfigurationManager.AppSettings["ImportDB"]);
  537. var cmd = new MySqlCommand(strSql, conn);
  538. conn.Open();
  539. var sb = new StringBuilder();
  540. var reader = cmd.ExecuteReader();
  541. while (reader.Read())
  542. {
  543. sb.Append("\"" + reader["alias"] + "\",");
  544. }
  545. reader.Close();
  546. conn.Close();
  547. if (sb.ToString() != string.Empty)
  548. {
  549. // If there are more than one templates we have to specify default template
  550. return ", AllowedTemplates = new string[] {" + sb.ToString().Remove(sb.Length - 1, 1) + "}"
  551. + GetDefaultTemplateDocType(nodeid);
  552. }
  553. return string.Empty;
  554. }
  555. #endregion
  556. }