PageRenderTime 44ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/DbmlBuilder/DbmlBuilder/CSharpCodeLanguage.cs

https://bitbucket.org/mahalowe/bvcms
C# | 112 lines | 91 code | 19 blank | 2 comment | 3 complexity | 4cc4c16f5edc8e844f7d97c39ff3a6f6 MD5 | raw file
Possible License(s): CC-BY-SA-3.0, Apache-2.0, BSD-3-Clause, LGPL-2.1, MPL-2.0-no-copyleft-exception, AGPL-3.0
  1. using System;
  2. using System.CodeDom.Compiler;
  3. using System.Data;
  4. using Microsoft.CSharp;
  5. using DbmlBuilder.Utilities;
  6. namespace DbmlBuilder
  7. {
  8. public static class CSharpCodeLanguage
  9. {
  10. #region Constants & enumerations
  11. private static readonly string[] keywords = {
  12. // keywords
  13. "abstract", "as", "base", "bool", "break", "byte", "case", "catch", "char", "checked", "class",
  14. "const", "continue", "date", "datetime", "decimal", "default", "delegate", "do", "double", "else",
  15. "enum", "event", "explicit", "extern", "false", "finally", "fixed", "float", "for", "foreach", "goto",
  16. "if", "implicit", "in", "int", "interface", "internal", "is", "lock", "long", "namespace", "new",
  17. "null", "object", "operator", "out", "override", "params", "private", "protected", "public", "readonly",
  18. "ref", "return", "sbyte", "sealed", "short", "sizeof", "stackalloc", "static", "string", "struct",
  19. "switch", "this", "throw", "true", "try", "typeof", "uint", "ulong", "unchecked", "unsafe", "ushort",
  20. "using", "virtual", "volatile", "void", "while",
  21. // contextual keywords
  22. "get", "partial", "set", "value", "where", "yield"
  23. };
  24. #endregion
  25. #region Properties
  26. public static string DefaultUsingStatements
  27. {
  28. get
  29. {
  30. return @"using System;
  31. using System.Data.Linq;
  32. using System.Data.Linq.Mapping;
  33. using System.Data;
  34. using System.Collections.Generic;
  35. using System.Reflection;
  36. using System.Linq;
  37. using System.Linq.Expressions;
  38. using System.ComponentModel;
  39. ";
  40. }
  41. }
  42. public static string TemplatePrefix
  43. {
  44. get { return "CS_"; }
  45. }
  46. #endregion
  47. #region Methods
  48. public static CodeDomProvider CreateCodeProvider()
  49. {
  50. return new CSharpCodeProvider();
  51. }
  52. public static string GetVariableType(DbType dbType, bool isNullableColumn)
  53. {
  54. string variableType = GetVariableType(dbType);
  55. if (isNullableColumn && Utility.IsNullableDbType(dbType))
  56. variableType = variableType + "?";
  57. return variableType;
  58. }
  59. #endregion
  60. #region Private methods
  61. private static string GetVariableType(DbType dbType)
  62. {
  63. switch (dbType) {
  64. case DbType.AnsiString:
  65. case DbType.AnsiStringFixedLength:
  66. case DbType.String:
  67. case DbType.StringFixedLength: return "string";
  68. case DbType.Binary: return "byte[]";
  69. case DbType.Boolean: return "bool";
  70. case DbType.Byte: return "byte";
  71. case DbType.Currency:
  72. case DbType.Decimal:
  73. case DbType.VarNumeric: return "decimal";
  74. case DbType.Date:
  75. case DbType.DateTime: return "DateTime";
  76. case DbType.Double: return "double";
  77. case DbType.Guid: return "Guid";
  78. case DbType.Int16: return "short";
  79. case DbType.Int32: return "int";
  80. case DbType.Int64: return "long";
  81. case DbType.Object: return "object";
  82. case DbType.SByte: return "sbyte";
  83. case DbType.Single: return "float";
  84. case DbType.Time: return "TimeSpan";
  85. case DbType.UInt16: return "ushort";
  86. case DbType.UInt32: return "uint";
  87. case DbType.UInt64: return "ulong";
  88. default: return "string";
  89. }
  90. }
  91. #endregion
  92. }
  93. }