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

/IntelWebSite/JSUtil.cs

https://github.com/sirivedula/IntelWebPro
C# | 127 lines | 125 code | 2 blank | 0 comment | 9 complexity | 8c207907aa9d62b87b6008a4d8372419 MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Text;
  6. using IntelWeb;
  7. namespace IntelWebSite
  8. {
  9. public static class JSUtil
  10. {
  11. public static string EnquoteJS(string s)
  12. {
  13. if (s == null || s.Length == 0)
  14. {
  15. return "";
  16. }
  17. char c;
  18. int i;
  19. int len = s.Length;
  20. StringBuilder sb = new StringBuilder(len + 4);
  21. string t;
  22. for (i = 0; i < len; i += 1)
  23. {
  24. c = s[i];
  25. if ((c == '\\') || (c == '"') || (c == '>'))
  26. {
  27. sb.Append('\\');
  28. sb.Append(c);
  29. }
  30. else if (c == '\b')
  31. sb.Append("\\b");
  32. else if (c == '\t')
  33. sb.Append("\\t");
  34. else if (c == '\n')
  35. sb.Append("\\n");
  36. else if (c == '\f')
  37. sb.Append("\\f");
  38. else if (c == '\r')
  39. sb.Append("\\r");
  40. else
  41. {
  42. if (c < ' ')
  43. {
  44. //t = "000" + Integer.toHexString(c);
  45. string tmp = new string(c, 1);
  46. t = "000" + int.Parse(tmp, System.Globalization.NumberStyles.HexNumber);
  47. sb.Append("\\u" + t.Substring(t.Length - 4));
  48. }
  49. else
  50. {
  51. sb.Append(c);
  52. }
  53. }
  54. }
  55. return sb.ToString();
  56. }
  57. public static string SerializeJSProperty(object FieldOrOther)
  58. {
  59. if (FieldOrOther is IntelWebField)
  60. {
  61. IntelWebField tField = (IntelWebField)FieldOrOther;
  62. if (tField.fieldValue == null)
  63. {
  64. return "null";
  65. }
  66. switch (tField.type)
  67. {
  68. case System.Data.OleDb.OleDbType.DBDate:
  69. case System.Data.OleDb.OleDbType.Date:
  70. var mydate = (DateTime)tField.fieldValue;
  71. return "'" + mydate.Month.ToString() + "/" + mydate.Day.ToString() + "/" + mydate.Year.ToString() + "'";
  72. case System.Data.OleDb.OleDbType.DBTime:
  73. case System.Data.OleDb.OleDbType.DBTimeStamp:
  74. var mydate2 = (DateTime)tField.fieldValue;
  75. return "new Date(" + new TimeSpan(mydate2.ToUniversalTime().Ticks - new DateTime(1970, 1, 1).Ticks).TotalMilliseconds.ToString() + ")";
  76. case System.Data.OleDb.OleDbType.Boolean:
  77. return ((Boolean)tField.fieldValue) ? "true" : "false";
  78. case System.Data.OleDb.OleDbType.BigInt:
  79. case System.Data.OleDb.OleDbType.Currency:
  80. case System.Data.OleDb.OleDbType.Decimal:
  81. case System.Data.OleDb.OleDbType.Double:
  82. case System.Data.OleDb.OleDbType.Integer:
  83. case System.Data.OleDb.OleDbType.Numeric:
  84. case System.Data.OleDb.OleDbType.Single:
  85. case System.Data.OleDb.OleDbType.SmallInt:
  86. case System.Data.OleDb.OleDbType.TinyInt:
  87. case System.Data.OleDb.OleDbType.UnsignedBigInt:
  88. case System.Data.OleDb.OleDbType.UnsignedInt:
  89. case System.Data.OleDb.OleDbType.UnsignedSmallInt:
  90. case System.Data.OleDb.OleDbType.UnsignedTinyInt:
  91. case System.Data.OleDb.OleDbType.VarNumeric:
  92. return JSUtil.EnquoteJS(tField.fieldValue.ToString());
  93. default:
  94. return "'" + JSUtil.EnquoteJS(tField.fieldValue.ToString()) + "'";
  95. }
  96. }
  97. else
  98. {
  99. if (FieldOrOther == null)
  100. {
  101. return "null";
  102. }
  103. if (FieldOrOther is Boolean) { return ((Boolean)FieldOrOther) ? "true" : "false"; }
  104. if (FieldOrOther is Decimal || FieldOrOther is int || FieldOrOther is Int16 || FieldOrOther is Int32 || FieldOrOther is Int64 || FieldOrOther is Double) { return FieldOrOther.ToString(); }
  105. if (FieldOrOther is Boolean?)
  106. {
  107. if (((Boolean?)FieldOrOther).HasValue)
  108. {
  109. return ((Boolean?)FieldOrOther).Value ? "true" : "false";
  110. }
  111. else
  112. {
  113. return "null";
  114. }
  115. }
  116. return "'" + JSUtil.EnquoteJS(FieldOrOther.ToString()) + "'";
  117. }
  118. }
  119. }
  120. }