PageRenderTime 55ms CodeModel.GetById 26ms RepoModel.GetById 0ms app.codeStats 0ms

/CodeSnippets/CondorComponentsServiceLayer.snippet

http://github.com/kahanu/CondorXE
Unknown | 337 lines | 308 code | 29 blank | 0 comment | 0 complexity | afce45797c0a42f56bf9c1d78da8a7f5 MD5 | raw file
  1. <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2008/CodeSnippet">
  2. <CodeSnippet Format="1.0.0">
  3. <Header>
  4. <Title>
  5. Condor Service Layer Objects snippet
  6. </Title>
  7. <Shortcut>condorcomponentsservicelayer</Shortcut>
  8. <Author>King Wilder</Author>
  9. <Description>Create a Condor concrete class that implements IServiceObjects.</Description>
  10. </Header>
  11. <Snippet>
  12. <Declarations>
  13. <Literal>
  14. <ID>mynamespace</ID>
  15. <ToolTip>Namespace of class</ToolTip>
  16. <Default>MyNamespace</Default>
  17. </Literal>
  18. <Literal>
  19. <ID>name</ID>
  20. <ToolTip>Name of class</ToolTip>
  21. <Default>My</Default>
  22. </Literal>
  23. </Declarations>
  24. <Code Language="CSharp">
  25. <![CDATA[using System;
  26. using System.Linq;
  27. using Condor.Core;
  28. using Condor.Core.Interfaces;
  29. using MyMeta;
  30. namespace $mynamespace$.Components.ServiceLayer
  31. {
  32. public class $name$ServiceLayerObjects : RenderBase, IServiceObjects
  33. {
  34. #region ctors
  35. private readonly RequestContext _context;
  36. private readonly ScriptSettings _script;
  37. public $name$ServiceLayerObjects(RequestContext context)
  38. : base(context.Zeus.Output)
  39. {
  40. this._context = context;
  41. this._script = context.ScriptSettings;
  42. }
  43. #endregion
  44. #region IRenderObject Members
  45. public void Render()
  46. {
  47. _context.Dialog.InitDialog(_context.Database.Tables.Count);
  48. _context.FileList.Add("");
  49. _context.FileList.Add("Generated $name$ Service Layer interfaces: ");
  50. RenderServiceCRUDInterface();
  51. foreach (string tableName in _script.Tables)
  52. {
  53. _context.Dialog.Display("Adding I" + tableName + "Service Interface");
  54. ITable table = _context.Database.Tables[tableName];
  55. RenderInterface(table);
  56. }
  57. _context.Dialog.InitDialog(_context.Database.Tables.Count);
  58. _context.FileList.Add("");
  59. _context.FileList.Add("Generated $name$ Service Layer Base classes: ");
  60. foreach (string tableName in _script.Tables)
  61. {
  62. _context.Dialog.Display("Adding " + tableName + "ServiceBase class");
  63. ITable table = _context.Database.Tables[tableName];
  64. RenderServiceBaseClass(table);
  65. }
  66. _context.Dialog.InitDialog(_context.Database.Tables.Count);
  67. _context.FileList.Add("");
  68. _context.FileList.Add("Generated $name$ Service Layer classes: ");
  69. foreach (string tableName in _script.Tables)
  70. {
  71. _context.Dialog.Display("Adding " + tableName + "Service class");
  72. ITable table = _context.Database.Tables[tableName];
  73. RenderConcreteClass(table);
  74. }
  75. }
  76. #endregion
  77. #region Private Methods
  78. private void RenderConcreteClass(ITable table)
  79. {
  80. var output = _context.Zeus.Output;
  81. output.clear();
  82. hdrUtil.WriteClassHeader(output);
  83. try
  84. {
  85. GenTable genTable = new GenTable(table, _context);
  86. string sortColumn = genTable.GetFirstStringColumnName();
  87. output.autoTabLn("using System;");
  88. output.autoTabLn("using System.Collections.Generic;");
  89. output.autoTabLn("using System.Linq;");
  90. output.autoTabLn("using System.Text;");
  91. output.autoTabLn("");
  92. output.autoTabLn("using " + _script.Settings.BusinessObjects.BusinessObjectsNamespace + ";");
  93. output.autoTabLn("using " + _script.Settings.ServiceLayer.ServiceNamespace + ".Interfaces;");
  94. output.autoTabLn("using " + _script.Settings.DataOptions.DataObjectsNamespace + ";");
  95. output.autoTabLn("using " + _script.Settings.DataOptions.DataObjectsNamespace + ".Interfaces;");
  96. output.autoTabLn("");
  97. output.autoTabLn("namespace " + _script.Settings.ServiceLayer.ServiceNamespace);
  98. output.autoTabLn("{");
  99. output.autoTabLn(" public class " + StringFormatter.CleanUpClassName(table.Name) + "Service : " + StringFormatter.CleanUpClassName(table.Name) + "ServiceBase, I" + StringFormatter.CleanUpClassName(table.Name) + "Service");
  100. output.autoTabLn(" {");
  101. output.autoTabLn("");
  102. output.tabLevel++;
  103. output.autoTabLn("#region Dependency Injection");
  104. output.tabLevel++;
  105. output.autoTabLn("");
  106. output.tabLevel--;
  107. output.autoTabLn("public " + StringFormatter.CleanUpClassName(table.Name) + "Service(I" + StringFormatter.CleanUpClassName(table.Name) + _script.Settings.DataOptions.ClassSuffix.Name + " " + StringFormatter.CleanUpClassName(table.Name) + _script.Settings.DataOptions.ClassSuffix.Name + "):base(" + StringFormatter.CleanUpClassName(table.Name) + _script.Settings.DataOptions.ClassSuffix.Name + ")");
  108. output.autoTabLn("{");
  109. output.autoTabLn("}");
  110. output.autoTabLn("");
  111. output.autoTabLn("#endregion");
  112. output.tabLevel--;
  113. output.autoTabLn("");
  114. output.tabLevel++;
  115. output.autoTabLn("#region I" + StringFormatter.CleanUpClassName(table.Name) + "Service Members");
  116. output.tabLevel--;
  117. output.autoTabLn("");
  118. output.tabLevel++;
  119. output.autoTabLn("public List<" + _context.Utility.BuildModelClassWithNameSpace(StringFormatter.CleanUpClassName(table.Name)) + "> GetAll(string sortExpression, int startRowIndex, int maximumRows)");
  120. output.autoTabLn("{");
  121. output.tabLevel++;
  122. output.autoTabLn("if (string.IsNullOrEmpty(sortExpression))");
  123. output.tabLevel++;
  124. output.autoTabLn("sortExpression = \"" + sortColumn + "\";");
  125. output.tabLevel--;
  126. output.tabLevel--;
  127. output.autoTabLn("");
  128. output.tabLevel++;
  129. output.autoTabLn("return " + StringFormatter.CamelCasing(StringFormatter.CleanUpClassName(table.Name)) + _script.Settings.DataOptions.ClassSuffix.Name + ".GetAll(sortExpression, startRowIndex, maximumRows);");
  130. output.tabLevel--;
  131. output.autoTabLn("}");
  132. output.tabLevel--;
  133. output.autoTabLn("");
  134. output.tabLevel++;
  135. output.autoTabLn("public int GetCount()");
  136. output.autoTabLn("{");
  137. output.tabLevel++;
  138. output.autoTabLn("return " + StringFormatter.CamelCasing(StringFormatter.CleanUpClassName(table.Name)) + _script.Settings.DataOptions.ClassSuffix.Name + ".GetAll().Count;");
  139. output.tabLevel--;
  140. output.autoTabLn("}");
  141. output.autoTabLn("");
  142. output.autoTabLn("public " + _context.Utility.BuildModelClassWithNameSpace(StringFormatter.CleanUpClassName(table.Name)) + " GetById(int Id)");
  143. output.autoTabLn("{");
  144. output.tabLevel++;
  145. output.autoTabLn("return " + StringFormatter.CamelCasing(StringFormatter.CleanUpClassName(table.Name)) + _script.Settings.DataOptions.ClassSuffix.Name + ".GetById(Id);");
  146. output.tabLevel--;
  147. output.autoTabLn("}");
  148. output.tabLevel--;
  149. output.autoTabLn("");
  150. output.tabLevel++;
  151. output.autoTabLn("#endregion");
  152. output.tabLevel--;
  153. output.autoTabLn(" }");
  154. output.autoTabLn("}");
  155. _context.FileList.Add(" " + StringFormatter.CleanUpClassName(table.Name) + "Service.cs");
  156. SaveOutput(CreateFullPath(_script.Settings.ServiceLayer.ServiceNamespace, StringFormatter.CleanUpClassName(table.Name) + "Service.cs"), SaveActions.DontOverwrite);
  157. }
  158. catch (Exception ex)
  159. {
  160. throw new Exception("Error rendering ServiceLayer Concrete class - " + ex.Message);
  161. }
  162. }
  163. private void RenderServiceBaseClass(ITable table)
  164. {
  165. var output = _context.Zeus.Output;
  166. output.clear();
  167. hdrUtil.WriteClassHeader(output);
  168. try
  169. {
  170. output.autoTabLn("using System.Collections.Generic;");
  171. output.autoTabLn("using System.Linq;");
  172. output.autoTabLn("using " + _script.Settings.BusinessObjects.BusinessObjectsNamespace + ";");
  173. output.autoTabLn("using " + _script.Settings.ServiceLayer.ServiceNamespace + ".Interfaces;");
  174. output.autoTabLn("using " + _script.Settings.DataOptions.DataObjectsNamespace + ";");
  175. output.autoTabLn("using " + _script.Settings.DataOptions.DataObjectsNamespace + ".Interfaces;");
  176. output.autoTabLn("");
  177. output.autoTabLn("namespace " + _script.Settings.ServiceLayer.ServiceNamespace);
  178. output.autoTabLn("{");
  179. output.autoTabLn(" public class " + StringFormatter.CleanUpClassName(table.Name) + "ServiceBase : ICRUDService<" + _context.Utility.BuildModelClassWithNameSpace(StringFormatter.CleanUpClassName(table.Name)) + ">");
  180. output.autoTabLn(" {");
  181. output.tabLevel++;
  182. output.autoTabLn("#region Dependency Injection");
  183. output.autoTabLn("");
  184. output.autoTabLn("protected I" + StringFormatter.CleanUpClassName(table.Name) + _script.Settings.DataOptions.ClassSuffix.Name + " " + StringFormatter.CamelCasing(StringFormatter.CleanUpClassName(table.Name)) + _script.Settings.DataOptions.ClassSuffix.Name + ";");
  185. output.tabLevel--;
  186. output.autoTabLn("");
  187. output.tabLevel++;
  188. output.autoTabLn("public " + StringFormatter.CleanUpClassName(table.Name) + "ServiceBase(I" + StringFormatter.CleanUpClassName(table.Name) + _script.Settings.DataOptions.ClassSuffix.Name + " " + StringFormatter.CleanUpClassName(table.Name) + _script.Settings.DataOptions.ClassSuffix.Name + ")");
  189. output.autoTabLn("{");
  190. output.tabLevel++;
  191. output.autoTabLn("this." + StringFormatter.CamelCasing(StringFormatter.CleanUpClassName(table.Name)) + _script.Settings.DataOptions.ClassSuffix.Name + " = " + StringFormatter.CleanUpClassName(table.Name) + _script.Settings.DataOptions.ClassSuffix.Name + ";");
  192. output.tabLevel--;
  193. output.autoTabLn("}");
  194. output.autoTabLn("");
  195. output.autoTabLn("#endregion");
  196. output.tabLevel--;
  197. output.autoTabLn("");
  198. output.tabLevel++;
  199. output.autoTabLn("public List<" + _context.Utility.BuildModelClassWithNameSpace(StringFormatter.CleanUpClassName(table.Name)) + "> GetAll()");
  200. output.autoTabLn("{");
  201. output.tabLevel++;
  202. output.autoTabLn("return " + StringFormatter.CamelCasing(StringFormatter.CleanUpClassName(table.Name)) + _script.Settings.DataOptions.ClassSuffix.Name + ".GetAll().ToList();");
  203. output.tabLevel--;
  204. output.autoTabLn("}");
  205. output.tabLevel--;
  206. output.autoTabLn("");
  207. output.tabLevel++;
  208. output.autoTabLn("public void Insert(" + _context.Utility.BuildModelClassWithNameSpace(StringFormatter.CleanUpClassName(table.Name)) + " model)");
  209. output.autoTabLn("{");
  210. output.tabLevel++;
  211. output.autoTabLn("" + StringFormatter.CamelCasing(StringFormatter.CleanUpClassName(table.Name)) + _script.Settings.DataOptions.ClassSuffix.Name + ".Insert(model);");
  212. output.tabLevel--;
  213. output.autoTabLn("}");
  214. output.tabLevel--;
  215. output.autoTabLn("");
  216. output.tabLevel++;
  217. output.autoTabLn("public void Update(" + _context.Utility.BuildModelClassWithNameSpace(StringFormatter.CleanUpClassName(table.Name)) + " model)");
  218. output.autoTabLn("{");
  219. output.tabLevel++;
  220. output.autoTabLn("" + StringFormatter.CamelCasing(StringFormatter.CleanUpClassName(table.Name)) + _script.Settings.DataOptions.ClassSuffix.Name + ".Update(model);");
  221. output.tabLevel--;
  222. output.autoTabLn("}");
  223. output.tabLevel--;
  224. output.autoTabLn("");
  225. output.tabLevel++;
  226. output.autoTabLn("public void Delete(" + _context.Utility.BuildModelClassWithNameSpace(StringFormatter.CleanUpClassName(table.Name)) + " model)");
  227. output.autoTabLn("{");
  228. output.tabLevel++;
  229. output.autoTabLn("" + StringFormatter.CamelCasing(StringFormatter.CleanUpClassName(table.Name)) + _script.Settings.DataOptions.ClassSuffix.Name + ".Delete(model);");
  230. output.tabLevel--;
  231. output.autoTabLn("}");
  232. output.tabLevel--;
  233. output.autoTabLn(" }");
  234. output.autoTabLn("}");
  235. _context.FileList.Add(" " + StringFormatter.CleanUpClassName(table.Name) + "ServiceBase.cs");
  236. SaveOutput(CreateFullPath(_script.Settings.ServiceLayer.ServiceNamespace + "\\Generated", StringFormatter.CleanUpClassName(table.Name) + "ServiceBase.cs"), SaveActions.Overwrite);
  237. }
  238. catch (Exception ex)
  239. {
  240. throw new Exception("Error rendering ServiceBase class - " + ex.Message);
  241. }
  242. }
  243. private void RenderInterface(ITable table)
  244. {
  245. var output = _context.Zeus.Output;
  246. output.clear();
  247. hdrUtil.WriteClassHeader(output);
  248. try
  249. {
  250. output.autoTabLn("using System;");
  251. output.autoTabLn("using System.Collections.Generic;");
  252. output.autoTabLn("using System.Linq;");
  253. output.autoTabLn("using System.Text;");
  254. output.autoTabLn("");
  255. output.autoTabLn("using " + _script.Settings.BusinessObjects.BusinessObjectsNamespace + ";");
  256. output.autoTabLn("");
  257. output.autoTabLn("namespace " + _script.Settings.ServiceLayer.ServiceNamespace);
  258. output.autoTabLn("{");
  259. output.autoTabLn(" public interface I" + StringFormatter.CleanUpClassName(table.Name) + "Service : ICRUDService<" + _context.Utility.BuildModelClassWithNameSpace(StringFormatter.CleanUpClassName(table.Name)) + ">");
  260. output.autoTabLn(" {");
  261. output.tabLevel++;
  262. output.autoTabLn(_context.Utility.BuildModelClassWithNameSpace(StringFormatter.CleanUpClassName(table.Name)) + " GetById(" + _context.Utility.RenderConcreteMethodParameters(table) + ");");
  263. output.autoTabLn("List<" + _context.Utility.BuildModelClassWithNameSpace(StringFormatter.CleanUpClassName(table.Name)) + "> GetAll(string sortExpression, int startRowIndex, int maximumRows);");
  264. output.autoTabLn("int GetCount();");
  265. output.tabLevel--;
  266. output.autoTabLn(" }");
  267. output.autoTabLn("}");
  268. _context.FileList.Add(" I" + StringFormatter.CleanUpClassName(table.Name) + "Service.cs");
  269. SaveOutput(CreateFullPath(_script.Settings.ServiceLayer.ServiceNamespace + "\\Interfaces", "I" + StringFormatter.CleanUpClassName(table.Name) + "Service.cs"), SaveActions.DontOverwrite);
  270. }
  271. catch (Exception ex)
  272. {
  273. throw new Exception("Error rendering RenderServiceLayerInterface - " + ex.Message);
  274. }
  275. }
  276. private void RenderServiceCRUDInterface()
  277. {
  278. var output = _context.Zeus.Output;
  279. output.clear();
  280. hdrUtil.WriteClassHeader(output);
  281. output.autoTabLn("using System;");
  282. output.autoTabLn("using System.Collections.Generic;");
  283. output.autoTabLn("using System.Linq;");
  284. output.autoTabLn("using System.Text;");
  285. output.autoTabLn("");
  286. output.autoTabLn("using " + _script.Settings.BusinessObjects.BusinessObjectsNamespace + ";");
  287. output.autoTabLn("");
  288. output.autoTabLn("namespace " + _script.Settings.ServiceLayer.ServiceNamespace);
  289. output.autoTabLn("{");
  290. output.autoTabLn(" public interface ICRUDService<T>");
  291. output.autoTabLn(" {");
  292. output.autoTabLn(" List<T> GetAll();");
  293. output.autoTabLn(" void Insert(T model);");
  294. output.autoTabLn(" void Update(T model);");
  295. output.autoTabLn(" void Delete(T model);");
  296. output.autoTabLn(" }");
  297. output.autoTabLn("}");
  298. _context.FileList.Add(" ICRUDService.cs");
  299. SaveOutput(CreateFullPath(_script.Settings.ServiceLayer.ServiceNamespace + "\\Interfaces", "ICRUDService.cs"), SaveActions.Overwrite);
  300. }
  301. #endregion
  302. }
  303. }
  304. ]]>
  305. </Code>
  306. </Snippet>
  307. </CodeSnippet>
  308. </CodeSnippets>