PageRenderTime 57ms CodeModel.GetById 28ms RepoModel.GetById 1ms app.codeStats 0ms

/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/CSHTML/List.cs

https://github.com/ajadex/SharpDevelop
C# | 661 lines | 482 code | 168 blank | 11 comment | 58 complexity | c63eeaa95f00c2e04cedecc284653b90 MD5 | raw file
  1. //------------------------------------------------------------------------------
  2. // <auto-generated>
  3. // This code was generated by a tool.
  4. // Runtime Version:4.0.30319.239
  5. //
  6. // Changes to this file may cause incorrect behavior and will be lost if
  7. // the code is regenerated.
  8. // </auto-generated>
  9. //------------------------------------------------------------------------------
  10. namespace ICSharpCode.AspNet.Mvc.CSHtml {
  11. using ICSharpCode.AspNet.Mvc;
  12. using System.Collections.Generic;
  13. using System.Reflection;
  14. using System;
  15. public partial class List : ListBase {
  16. private global::Microsoft.VisualStudio.TextTemplating.ITextTemplatingEngineHost hostValue;
  17. #line 96 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  18. MvcTextTemplateHost MvcHost {
  19. get { return (MvcTextTemplateHost)Host; }
  20. }
  21. public class ModelProperty
  22. {
  23. public string Name { get; set; }
  24. public bool IsPrimaryKey { get; set; }
  25. public ModelProperty(PropertyInfo propertyInfo)
  26. {
  27. this.Name = propertyInfo.Name;
  28. this.IsPrimaryKey = IsPrimaryKeyProperty(propertyInfo);
  29. }
  30. bool IsPrimaryKeyProperty(PropertyInfo propertyInfo)
  31. {
  32. return
  33. IsIdProperty(propertyInfo) ||
  34. IsIdPropertyPrefixedWithClassName(propertyInfo);
  35. }
  36. bool IsIdProperty(PropertyInfo propertyInfo)
  37. {
  38. return IsMatchIgnoringCase(propertyInfo.Name, "id");
  39. }
  40. bool IsIdPropertyPrefixedWithClassName(PropertyInfo propertyInfo)
  41. {
  42. string prefixedIdPropertyName = propertyInfo.DeclaringType.Name + "id";
  43. return IsMatchIgnoringCase(propertyInfo.Name, prefixedIdPropertyName);
  44. }
  45. static bool IsMatchIgnoringCase(string a, string b)
  46. {
  47. return String.Equals(a, b, StringComparison.OrdinalIgnoreCase);
  48. }
  49. }
  50. public string GetModelDirective()
  51. {
  52. string viewDataTypeName = MvcHost.ViewDataTypeName;
  53. if (!String.IsNullOrEmpty(viewDataTypeName)) {
  54. return String.Format("@model IEnumerable<{0}>", viewDataTypeName);
  55. }
  56. return String.Empty;
  57. }
  58. List<ModelProperty> modelProperties;
  59. List<ModelProperty> ModelProperties {
  60. get {
  61. if (modelProperties == null) {
  62. modelProperties = new List<ModelProperty>(GetModelProperties());
  63. }
  64. return modelProperties;
  65. }
  66. }
  67. public IEnumerable<ModelProperty> GetModelProperties()
  68. {
  69. var properties = new List<ModelProperty>();
  70. foreach (PropertyInfo propertyInfo in MvcHost.GetViewDataTypeProperties()) {
  71. properties.Add(new ModelProperty(propertyInfo));
  72. }
  73. return properties;
  74. }
  75. bool ModelHasProperties {
  76. get { return ModelProperties.Count > 0; }
  77. }
  78. bool ModelHasPrimaryKey {
  79. get { return ModelPrimaryKeyName.Length > 0; }
  80. }
  81. string modelPrimaryKeyName;
  82. string ModelPrimaryKeyName {
  83. get {
  84. if (modelPrimaryKeyName == null) {
  85. modelPrimaryKeyName = GetModelPrimaryKeyName();
  86. }
  87. return modelPrimaryKeyName;
  88. }
  89. }
  90. public string GetModelPrimaryKeyName()
  91. {
  92. foreach (ModelProperty modelProperty in ModelProperties) {
  93. if (modelProperty.IsPrimaryKey) {
  94. return modelProperty.Name;
  95. }
  96. }
  97. return "";
  98. }
  99. #line default
  100. #line hidden
  101. public global::Microsoft.VisualStudio.TextTemplating.ITextTemplatingEngineHost Host {
  102. get {
  103. return this.hostValue;
  104. }
  105. set {
  106. this.hostValue = value;
  107. }
  108. }
  109. public virtual string TransformText() {
  110. this.GenerationEnvironment = null;
  111. #line 6 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  112. this.Write(this.ToStringHelper.ToStringWithCulture( GetModelDirective() ));
  113. #line default
  114. #line hidden
  115. #line 6 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  116. this.Write("\r\n\r\n");
  117. #line default
  118. #line hidden
  119. #line 8 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  120. if (MvcHost.IsPartialView) {
  121. // Do nothing.
  122. } else if (MvcHost.IsContentPage) {
  123. #line default
  124. #line hidden
  125. #line 13 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  126. this.Write("@{\r\n\tViewBag.Title = \"");
  127. #line default
  128. #line hidden
  129. #line 14 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  130. this.Write(this.ToStringHelper.ToStringWithCulture( MvcHost.ViewName ));
  131. #line default
  132. #line hidden
  133. #line 14 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  134. this.Write("\";\r\n\tLayout = \"");
  135. #line default
  136. #line hidden
  137. #line 15 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  138. this.Write(this.ToStringHelper.ToStringWithCulture( MvcHost.MasterPageFile ));
  139. #line default
  140. #line hidden
  141. #line 15 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  142. this.Write("\";\r\n}\r\n\r\n<h2>");
  143. #line default
  144. #line hidden
  145. #line 18 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  146. this.Write(this.ToStringHelper.ToStringWithCulture( MvcHost.ViewName ));
  147. #line default
  148. #line hidden
  149. #line 18 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  150. this.Write("</h2>\r\n\r\n");
  151. #line default
  152. #line hidden
  153. #line 20 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  154. } else {
  155. #line default
  156. #line hidden
  157. #line 23 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  158. this.Write("<!DOCTYPE html>\r\n<html>\r\n\t<head runat=\"server\">\r\n\t\t<title>");
  159. #line default
  160. #line hidden
  161. #line 26 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  162. this.Write(this.ToStringHelper.ToStringWithCulture( MvcHost.ViewName ));
  163. #line default
  164. #line hidden
  165. #line 26 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  166. this.Write("</title>\r\n\t</head>\r\n\t<body>\r\n");
  167. #line default
  168. #line hidden
  169. #line 29 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  170. PushIndent("\t\t");
  171. }
  172. #line default
  173. #line hidden
  174. #line 33 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  175. this.Write("<p>\r\n\t@Html.ActionLink(\"Create\", \"Create\")\r\n</p>\r\n<table>\r\n");
  176. #line default
  177. #line hidden
  178. #line 37 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  179. if (ModelHasProperties) {
  180. #line default
  181. #line hidden
  182. #line 40 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  183. this.Write("\t<tr>\r\n");
  184. #line default
  185. #line hidden
  186. #line 41 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  187. foreach (ModelProperty modelProperty in ModelProperties) {
  188. if (!modelProperty.IsPrimaryKey) {
  189. #line default
  190. #line hidden
  191. #line 45 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  192. this.Write("\t\t<th>\r\n\t\t\t@Html.LabelFor(model => model.");
  193. #line default
  194. #line hidden
  195. #line 46 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  196. this.Write(this.ToStringHelper.ToStringWithCulture( modelProperty.Name ));
  197. #line default
  198. #line hidden
  199. #line 46 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  200. this.Write(")\r\n\t\t</th>\r\n");
  201. #line default
  202. #line hidden
  203. #line 48 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  204. }
  205. }
  206. #line default
  207. #line hidden
  208. #line 52 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  209. this.Write("\t\t<th></th>\r\n\t</tr>\r\n\t\r\n");
  210. #line default
  211. #line hidden
  212. #line 55 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  213. }
  214. #line default
  215. #line hidden
  216. #line 58 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  217. this.Write("@foreach (var item in Model) {\r\n\t<tr>\r\n");
  218. #line default
  219. #line hidden
  220. #line 60 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  221. if (ModelHasProperties) {
  222. foreach (ModelProperty modelProperty in ModelProperties) {
  223. if (!modelProperty.IsPrimaryKey) {
  224. #line default
  225. #line hidden
  226. #line 65 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  227. this.Write("\t\t<td>\r\n\t\t\t@Html.DisplayFor(model => model.");
  228. #line default
  229. #line hidden
  230. #line 66 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  231. this.Write(this.ToStringHelper.ToStringWithCulture( modelProperty.Name ));
  232. #line default
  233. #line hidden
  234. #line 66 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  235. this.Write(")\r\n\t\t</td>\r\n");
  236. #line default
  237. #line hidden
  238. #line 68 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  239. }
  240. }
  241. }
  242. #line default
  243. #line hidden
  244. #line 73 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  245. this.Write("\t\t<td>\r\n");
  246. #line default
  247. #line hidden
  248. #line 74 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  249. if (ModelHasPrimaryKey) {
  250. #line default
  251. #line hidden
  252. #line 75 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  253. this.Write("\t\t\t@Html.ActionLink(\"Edit\", \"Edit\", new { id = item.");
  254. #line default
  255. #line hidden
  256. #line 75 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  257. this.Write(this.ToStringHelper.ToStringWithCulture( ModelPrimaryKeyName ));
  258. #line default
  259. #line hidden
  260. #line 75 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  261. this.Write(" }) |\r\n\t\t\t@Html.ActionLink(\"Details\", \"Details\", new { id = item.");
  262. #line default
  263. #line hidden
  264. #line 76 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  265. this.Write(this.ToStringHelper.ToStringWithCulture( ModelPrimaryKeyName ));
  266. #line default
  267. #line hidden
  268. #line 76 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  269. this.Write(" }) |\r\n\t\t\t@Html.ActionLink(\"Delete\", \"Delete\", new { id = item.");
  270. #line default
  271. #line hidden
  272. #line 77 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  273. this.Write(this.ToStringHelper.ToStringWithCulture( ModelPrimaryKeyName ));
  274. #line default
  275. #line hidden
  276. #line 77 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  277. this.Write(" })\r\n");
  278. #line default
  279. #line hidden
  280. #line 78 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  281. } else {
  282. #line default
  283. #line hidden
  284. #line 79 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  285. this.Write("\t\t\t@Html.ActionLink(\"Edit\", \"Edit\") |\r\n\t\t\t@Html.ActionLink(\"Details\", \"Details\") " +
  286. "|\r\n\t\t\t@Html.ActionLink(\"Delete\", \"Delete\")\r\n");
  287. #line default
  288. #line hidden
  289. #line 82 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  290. }
  291. #line default
  292. #line hidden
  293. #line 83 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  294. this.Write("\t\t</td>\r\n\t</tr>\r\n}\r\n</table>\r\n");
  295. #line default
  296. #line hidden
  297. #line 87 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  298. if (MvcHost.IsPartialView) {
  299. // Do nothing.
  300. } else if (!MvcHost.IsContentPage) {
  301. PopIndent();
  302. #line default
  303. #line hidden
  304. #line 93 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  305. this.Write("\t</body>\r\n</html>\r\n");
  306. #line default
  307. #line hidden
  308. #line 95 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\List.tt"
  309. }
  310. #line default
  311. #line hidden
  312. return this.GenerationEnvironment.ToString();
  313. }
  314. protected virtual void Initialize() {
  315. }
  316. }
  317. public class ListBase {
  318. private global::System.Text.StringBuilder builder;
  319. private global::System.Collections.Generic.IDictionary<string, object> session;
  320. private global::System.CodeDom.Compiler.CompilerErrorCollection errors;
  321. private string currentIndent = string.Empty;
  322. private global::System.Collections.Generic.Stack<int> indents;
  323. private bool endsWithNewline;
  324. private ToStringInstanceHelper _toStringHelper = new ToStringInstanceHelper();
  325. public virtual global::System.Collections.Generic.IDictionary<string, object> Session {
  326. get {
  327. return this.session;
  328. }
  329. set {
  330. this.session = value;
  331. }
  332. }
  333. public global::System.Text.StringBuilder GenerationEnvironment {
  334. get {
  335. if ((this.builder == null)) {
  336. this.builder = new global::System.Text.StringBuilder();
  337. }
  338. return this.builder;
  339. }
  340. set {
  341. this.builder = value;
  342. }
  343. }
  344. protected global::System.CodeDom.Compiler.CompilerErrorCollection Errors {
  345. get {
  346. if ((this.errors == null)) {
  347. this.errors = new global::System.CodeDom.Compiler.CompilerErrorCollection();
  348. }
  349. return this.errors;
  350. }
  351. }
  352. public string CurrentIndent {
  353. get {
  354. return this.currentIndent;
  355. }
  356. }
  357. private global::System.Collections.Generic.Stack<int> Indents {
  358. get {
  359. if ((this.indents == null)) {
  360. this.indents = new global::System.Collections.Generic.Stack<int>();
  361. }
  362. return this.indents;
  363. }
  364. }
  365. public ToStringInstanceHelper ToStringHelper {
  366. get {
  367. return this._toStringHelper;
  368. }
  369. }
  370. public void Error(string message) {
  371. this.Errors.Add(new global::System.CodeDom.Compiler.CompilerError(null, -1, -1, null, message));
  372. }
  373. public void Warning(string message) {
  374. global::System.CodeDom.Compiler.CompilerError val = new global::System.CodeDom.Compiler.CompilerError(null, -1, -1, null, message);
  375. val.IsWarning = true;
  376. this.Errors.Add(val);
  377. }
  378. public string PopIndent() {
  379. if ((this.Indents.Count == 0)) {
  380. return string.Empty;
  381. }
  382. int lastPos = (this.currentIndent.Length - this.Indents.Pop());
  383. string last = this.currentIndent.Substring(lastPos);
  384. this.currentIndent = this.currentIndent.Substring(0, lastPos);
  385. return last;
  386. }
  387. public void PushIndent(string indent) {
  388. this.Indents.Push(indent.Length);
  389. this.currentIndent = (this.currentIndent + indent);
  390. }
  391. public void ClearIndent() {
  392. this.currentIndent = string.Empty;
  393. this.Indents.Clear();
  394. }
  395. public void Write(string textToAppend) {
  396. if (string.IsNullOrEmpty(textToAppend)) {
  397. return;
  398. }
  399. if ((((this.GenerationEnvironment.Length == 0)
  400. || this.endsWithNewline)
  401. && (this.CurrentIndent.Length > 0))) {
  402. this.GenerationEnvironment.Append(this.CurrentIndent);
  403. }
  404. this.endsWithNewline = false;
  405. char last = textToAppend[(textToAppend.Length - 1)];
  406. if (((last == '\n')
  407. || (last == '\r'))) {
  408. this.endsWithNewline = true;
  409. }
  410. if ((this.CurrentIndent.Length == 0)) {
  411. this.GenerationEnvironment.Append(textToAppend);
  412. return;
  413. }
  414. int lastNewline = 0;
  415. for (int i = 0; (i
  416. < (textToAppend.Length - 1)); i = (i + 1)) {
  417. char c = textToAppend[i];
  418. if ((c == '\r')) {
  419. if ((textToAppend[(i + 1)] == '\n')) {
  420. i = (i + 1);
  421. if ((i
  422. == (textToAppend.Length - 1))) {
  423. goto breakLoop;
  424. }
  425. }
  426. }
  427. else {
  428. if ((c != '\n')) {
  429. goto continueLoop;
  430. }
  431. }
  432. i = (i + 1);
  433. int len = (i - lastNewline);
  434. if ((len > 0)) {
  435. this.GenerationEnvironment.Append(textToAppend, lastNewline, (i - lastNewline));
  436. }
  437. this.GenerationEnvironment.Append(this.CurrentIndent);
  438. lastNewline = i;
  439. continueLoop:
  440. ;
  441. }
  442. breakLoop:
  443. if ((lastNewline > 0)) {
  444. this.GenerationEnvironment.Append(textToAppend, lastNewline, (textToAppend.Length - lastNewline));
  445. }
  446. else {
  447. this.GenerationEnvironment.Append(textToAppend);
  448. }
  449. }
  450. public void Write(string format, params object[] args) {
  451. this.Write(string.Format(format, args));
  452. }
  453. public void WriteLine(string textToAppend) {
  454. this.Write(textToAppend);
  455. this.GenerationEnvironment.AppendLine();
  456. this.endsWithNewline = true;
  457. }
  458. public void WriteLine(string format, params object[] args) {
  459. this.WriteLine(string.Format(format, args));
  460. }
  461. public class ToStringInstanceHelper {
  462. private global::System.IFormatProvider formatProvider = global::System.Globalization.CultureInfo.InvariantCulture;
  463. public global::System.IFormatProvider FormatProvider {
  464. get {
  465. return this.formatProvider;
  466. }
  467. set {
  468. if ((this.formatProvider == null)) {
  469. throw new global::System.ArgumentNullException("formatProvider");
  470. }
  471. this.formatProvider = value;
  472. }
  473. }
  474. public string ToStringWithCulture(object objectToConvert) {
  475. if ((objectToConvert == null)) {
  476. throw new global::System.ArgumentNullException("objectToConvert");
  477. }
  478. global::System.Type type = objectToConvert.GetType();
  479. global::System.Type iConvertibleType = typeof(global::System.IConvertible);
  480. if (iConvertibleType.IsAssignableFrom(type)) {
  481. return ((global::System.IConvertible)(objectToConvert)).ToString(this.formatProvider);
  482. }
  483. global::System.Reflection.MethodInfo methInfo = type.GetMethod("ToString", new global::System.Type[] {
  484. iConvertibleType});
  485. if ((methInfo != null)) {
  486. return ((string)(methInfo.Invoke(objectToConvert, new object[] {
  487. this.formatProvider})));
  488. }
  489. return objectToConvert.ToString();
  490. }
  491. }
  492. }
  493. }