OpenCodeRuleViolation.cs 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using CB.Common;
  6. using CB.Entity;
  7. namespace CB.Admin.Plugins.OpenCode
  8. {
  9. public class OpenCodeRuleViolation
  10. {
  11. /// <summary>
  12. /// 验证输入的开奖信息是否正确
  13. /// </summary>
  14. /// <typeparam name="T"></typeparam>
  15. /// <param name="entity"></param>
  16. /// <param name="OpenCodeLength">开奖号码长度</param>
  17. /// <returns></returns>
  18. public static Tuple<bool, string> ViolationOpenCode<T>(T entity) where T : LotteryOpenCode
  19. {
  20. if (null == entity)
  21. {
  22. return new Tuple<bool, string>(false, "验证失败,请填写必要数据!");
  23. }
  24. if (0 >= entity.Term)
  25. {
  26. return new Tuple<bool, string>(false, "期数不正确!");
  27. }
  28. if (entity.OpenTime == DateTime.MinValue)
  29. {
  30. return new Tuple<bool, string>(false, "开奖时间不正确!");
  31. }
  32. Type type = typeof(T);
  33. #region 福彩3D验证
  34. if (typeof(FC3DInfo) == type) //福彩3D验证
  35. {
  36. if (entity.KaiJiHao.IndexOf("-1", StringComparison.InvariantCulture) >= 0)
  37. {
  38. return new Tuple<bool, string>(false, "开机号码必须填写!");
  39. }
  40. //开机号验证
  41. var list = new List<int>();
  42. foreach (var str in entity.KaiJiHao.Split(','))
  43. {
  44. list.Add(TypeConverter.StrToInt(str, -1));
  45. }
  46. if (list.Where(s => { return (s >= 0 && s <= 9); }).ToList().Count != 3)
  47. {
  48. return new Tuple<bool, string>(false, "开机号码不正确!");
  49. }
  50. //试机号验证
  51. if (entity.ShiJiHao.IndexOf("-1", StringComparison.InvariantCulture) == -1)
  52. {
  53. list = new List<int>();
  54. foreach (var str in entity.ShiJiHao.Split(','))
  55. {
  56. list.Add(TypeConverter.StrToInt(str, -1));
  57. }
  58. if (list.Where(s => { return (s >= 0 && s <= 9); }).ToList().Count != 3)
  59. {
  60. return new Tuple<bool, string>(false, "试机号码不正确!");
  61. }
  62. }
  63. //开奖号码验证
  64. if (entity.OpenCode.Count(s => s <= -1) != 3)
  65. {
  66. if (entity.OpenCode.Where(s => { return (s >= 0 && s <= 9); }).ToList().Count != 3)
  67. {
  68. return new Tuple<bool, string>(false, "开奖号码不正确!");
  69. }
  70. }
  71. return new Tuple<bool, string>(true, "验证通过!");
  72. }
  73. #endregion
  74. #region 七乐彩验证
  75. if (typeof(FCQLCInfo) == type)
  76. {
  77. //开奖号码验证
  78. if (entity.OpenCode.Count(s => s == -1) != 8)
  79. {
  80. if (entity.OpenCode.Where(s => { return (s > 0 && s <= 30); }).ToList().Count != 8)
  81. {
  82. return new Tuple<bool, string>(false, "开奖号码不正确!");
  83. }
  84. }
  85. return new Tuple<bool, string>(true, "验证通过!");
  86. }
  87. #endregion
  88. #region 福彩双色球验证
  89. if (typeof(FCSSQInfo) == type)
  90. {
  91. if (entity.KaiJiHao.IndexOf("-1", StringComparison.InvariantCulture) >= 0)
  92. {
  93. return new Tuple<bool, string>(false, "开机号码必须填写!");
  94. }
  95. //开机号验证
  96. var list = new List<int>();
  97. foreach (var str in entity.KaiJiHao.Split(','))
  98. {
  99. list.Add(TypeConverter.StrToInt(str));
  100. }
  101. if (list.Take(6).Where(s => { return (s >= 1 && s <= 33); }).ToList().Count != 6)
  102. {
  103. return new Tuple<bool, string>(false, "开机号红球不正确!");
  104. }
  105. if (list[6] <= 0 || list[6] > 16)
  106. {
  107. return new Tuple<bool, string>(false, "开机号篮球不正确");
  108. }
  109. //开奖号码验证
  110. if (entity.OpenCode.Count(s => s == -1) != 7)
  111. {
  112. if (entity.OpenCode.Take(6).Where(s => { return (s >= 1 && s <= 33); }).ToList().Count != 6)
  113. {
  114. return new Tuple<bool, string>(false, "开奖号码红球不正确!");
  115. }
  116. if (entity.OpenCode[6] <= 0 || entity.OpenCode[6] > 16)
  117. {
  118. return new Tuple<bool, string>(false, "开奖号码篮球不正确!");
  119. }
  120. }
  121. return new Tuple<bool, string>(true, "验证通过!");
  122. }
  123. #endregion
  124. #region P3验证
  125. if (typeof(TCP3Info) == type)
  126. {
  127. if (entity.KaiJiHao.IndexOf("-1", StringComparison.InvariantCulture) >= 0)
  128. {
  129. return new Tuple<bool, string>(false, "开机号码必须填写!");
  130. }
  131. var list = new List<int>();
  132. foreach (var str in entity.KaiJiHao.Split(','))
  133. {
  134. list.Add(TypeConverter.StrToInt(str,-1));
  135. }
  136. if (list.Where(s => { return (s >= 0 && s <= 9); }).ToList().Count != 3)
  137. {
  138. return new Tuple<bool, string>(false, "开机号码不正确!");
  139. }
  140. //试机号验证
  141. if (entity.ShiJiHao.IndexOf("-1", StringComparison.InvariantCulture) == -1)
  142. {
  143. list = new List<int>();
  144. foreach (var str in entity.ShiJiHao.Split(','))
  145. {
  146. list.Add(TypeConverter.StrToInt(str, -1));
  147. }
  148. if (list.Where(s => { return (s >= 0 && s <= 9); }).ToList().Count != 3)
  149. {
  150. return new Tuple<bool, string>(false, "试机号码不正确!");
  151. }
  152. }
  153. //开奖号码验证
  154. if (entity.OpenCode.Count(s => s == -1) != 5)
  155. {
  156. if (entity.OpenCode.Where(s => { return (s >= 0 && s <= 9); }).ToList().Count != 5)
  157. {
  158. return new Tuple<bool, string>(false, "开奖号码不正确!");
  159. }
  160. }
  161. return new Tuple<bool, string>(true, "验证通过!");
  162. }
  163. #endregion
  164. #region 七星彩验证
  165. if (typeof(TCQXCInfo) == type)
  166. {
  167. //开奖号码验证
  168. if (entity.OpenCode.Count(s => s == -1) != 7)
  169. {
  170. if (entity.OpenCode.Where(s => { return (s >= 0 && s <= 9); }).ToList().Count != 7)
  171. {
  172. return new Tuple<bool, string>(false, "开奖号码不正确!");
  173. }
  174. }
  175. return new Tuple<bool, string>(true, "验证通过!");
  176. }
  177. #endregion
  178. #region 大乐透验证
  179. if (typeof(TCDLTInfo) == type)
  180. {
  181. if (entity.KaiJiHao.IndexOf("-1", StringComparison.InvariantCulture) >= 0)
  182. {
  183. return new Tuple<bool, string>(false, "开机号码必须填写!");
  184. }
  185. //开机号验证
  186. var list = new List<int>();
  187. foreach (var str in entity.KaiJiHao.Split(','))
  188. {
  189. list.Add(TypeConverter.StrToInt(str, -1));
  190. }
  191. if (list.Take(5).Where(s => { return (s >= 1 && s <= 35); }).ToList().Count != 5)
  192. {
  193. return new Tuple<bool, string>(false, "开机号前区不正确!");
  194. }
  195. if (list[6] <= 0 || list[6] > 12 || list[5] <= 0 || list[5] > 12)
  196. {
  197. return new Tuple<bool, string>(false, "开机号后区不正确");
  198. }
  199. //开奖号码验证
  200. if (entity.OpenCode.Count(s => s == -1) != 7)
  201. {
  202. if (entity.OpenCode.Take(5).Where(s => { return (s >= 1 && s <= 35); }).ToList().Count != 5)
  203. {
  204. return new Tuple<bool, string>(false, "开奖号码前区不正确!");
  205. }
  206. if (entity.OpenCode[6] <= 0 || entity.OpenCode[6] > 12 || entity.OpenCode[5] <= 0 || entity.OpenCode[5] > 12)
  207. {
  208. return new Tuple<bool, string>(false, "开奖号码后区不正确!");
  209. }
  210. }
  211. return new Tuple<bool, string>(true, "验证通过!");
  212. }
  213. #endregion
  214. #region 好彩1验证
  215. if (typeof (HC1Info) == type)
  216. {
  217. //开奖号码验证
  218. if (entity.OpenCode.Count(s => s == -1) != 1)
  219. {
  220. if (entity.OpenCode.Where(s => { return (s >= 1 && s <= 36); }).ToList().Count != 1)
  221. {
  222. return new Tuple<bool, string>(false, "开奖号码不正确!");
  223. }
  224. }
  225. }
  226. #endregion
  227. return new Tuple<bool, string>(true, "验证成功");
  228. }
  229. }
  230. }