SvAdvSchedule.cs 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. using Oracle.ManagedDataAccess.Client;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Web;
  6. namespace ReportWeb.Models
  7. {
  8. public class SvAdvSchedule
  9. {
  10. // service scheduler
  11. public int id { get; set; }
  12. public DateTime? from_date { get; set; }
  13. public DateTime? to_date { get; set; }
  14. public string schedule_name { get; set; }
  15. //public int max_total_message { get; set; }
  16. public int status { get; set; }
  17. public int max_total_msg { get; set; }
  18. public List<SvAdv> list_adv { get; set; }
  19. public static List<SvAdvSchedule> Parse(OracleDataReader reader)
  20. {
  21. List<SvAdvSchedule> result = new List<SvAdvSchedule>();
  22. List<int> listId = new List<int>();
  23. try
  24. {
  25. while (reader.Read())
  26. {
  27. SvAdvSchedule sv = new SvAdvSchedule();
  28. SvAdv adv = new SvAdv();
  29. for (int i = 0; i < reader.FieldCount; i++)
  30. {
  31. if (reader.GetName(i).ToUpper() == "ID")
  32. try
  33. {
  34. sv.id = int.Parse(reader.GetValue(i).ToString());
  35. }
  36. catch { }
  37. else if (reader.GetName(i).ToUpper() == "SCHEDULE_NAME")
  38. try
  39. {
  40. sv.schedule_name = reader.GetValue(i).ToString();
  41. }
  42. catch { }
  43. else if (reader.GetName(i).ToUpper() == "FROM_DATE")
  44. try
  45. {
  46. sv.from_date = reader.GetDateTime(i);
  47. }
  48. catch { }
  49. else if (reader.GetName(i).ToUpper() == "TO_DATE")
  50. try
  51. {
  52. sv.to_date = reader.GetDateTime(i);
  53. }
  54. catch { }
  55. else if (reader.GetName(i).ToUpper() == "STATUS")
  56. try
  57. {
  58. sv.status = int.Parse(reader.GetValue(i).ToString());
  59. }
  60. catch { }
  61. else if (reader.GetName(i).ToUpper() == "MAX_TOTAL_MSG")
  62. try
  63. {
  64. sv.max_total_msg = int.Parse(reader.GetValue(i).ToString());
  65. }
  66. catch { }
  67. // adv info
  68. else if (reader.GetName(i).ToUpper() == "SV_ADV_ID")
  69. {
  70. try
  71. {
  72. adv.id = int.Parse(reader.GetValue(i).ToString());
  73. }
  74. catch { }
  75. }
  76. else if (reader.GetName(i).ToUpper() == "SV_CODE")
  77. {
  78. try
  79. {
  80. adv.sv_code = reader.GetValue(i).ToString();
  81. }
  82. catch { }
  83. }
  84. else if (reader.GetName(i).ToUpper() == "MSG_ADV")
  85. try
  86. {
  87. adv.msg_adv = reader.GetValue(i).ToString();
  88. }
  89. catch { }
  90. else if (reader.GetName(i).ToUpper() == "ADV_NAME")
  91. try
  92. {
  93. adv.adv_name = reader.GetValue(i).ToString();
  94. }
  95. catch { }
  96. else if (reader.GetName(i).ToUpper() == "MESSAGE_TYPE")
  97. try
  98. {
  99. adv.message_type = reader.GetValue(i).ToString();
  100. }
  101. catch { }
  102. else if (reader.GetName(i).ToUpper() == "CHANNEL_ADV")
  103. try
  104. {
  105. adv.channel_adv = reader.GetValue(i).ToString();
  106. }
  107. catch { }
  108. else if (reader.GetName(i).ToUpper() == "FROM_MONEY")
  109. try
  110. {
  111. adv.from_money = reader.GetValue(i).ToString();
  112. }
  113. catch { }
  114. else if (reader.GetName(i).ToUpper() == "PERCENT")
  115. try
  116. {
  117. adv.percent = int.Parse(reader.GetValue(i).ToString());
  118. }
  119. catch { }
  120. }
  121. if (listId.Contains(sv.id))
  122. {
  123. // add to list
  124. for (int i = 0; i < result.Count; i++)
  125. {
  126. SvAdvSchedule s = result[i];
  127. if (s.id == sv.id)
  128. {
  129. result[i].list_adv.Add(adv);
  130. break;
  131. }
  132. }
  133. }
  134. else
  135. {
  136. listId.Add(sv.id);
  137. // new list
  138. List<SvAdv> listTemp = new List<SvAdv>();
  139. listTemp.Add(adv);
  140. sv.list_adv = listTemp;
  141. result.Add(sv);
  142. }
  143. }
  144. reader.Close();
  145. }
  146. catch
  147. {
  148. }
  149. finally
  150. {
  151. try
  152. {
  153. reader.Close();
  154. }
  155. catch { }
  156. }
  157. return result;
  158. }
  159. }
  160. }