123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- using CP.Common;
- using CP.Model;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Xml;
- using System.Configuration;
- using System.Reflection;
- using System.ComponentModel;
- using CP.Business;
- namespace CP.Kjh.Models
- {
- public static class OtherHelper
- {
- #region 配置(单例)
- private static readonly Lazy<IEnumerable<CzTypeModel>> czTypeEnumList = new Lazy<IEnumerable<CzTypeModel>>(() => GetCzTypeModel());
- private static readonly Lazy<IEnumerable<Cz>> czList = new Lazy<IEnumerable<Cz>>(() => CzBll.GetAllList());
- private static readonly Lazy<IEnumerable<Chart>> chartList = new Lazy<IEnumerable<Chart>>(() => ChartBll.GetList());
- private static readonly Lazy<IEnumerable<WF>> wfList = new Lazy<IEnumerable<WF>>(() => new WFBLL().GetList());
- private static readonly Lazy<IEnumerable<WhatModel>> whatList = new Lazy<IEnumerable<WhatModel>>(() => OtherHelper.ConvertXMLToObject<WhatModel>(HttpContext.Current.Server.MapPath($@"{ConfigurationManager.AppSettings["WhatXml"]}")));
- private static readonly Lazy<IEnumerable<NewsModel>> newsList = new Lazy<IEnumerable<NewsModel>>(() => OtherHelper.ConvertXMLToObject<NewsModel>(HttpContext.Current.Server.MapPath($@"{ConfigurationManager.AppSettings["NewsXml"]}")));
- private static readonly Lazy<IEnumerable<HkModel>> hkList = new Lazy<IEnumerable<HkModel>>(() => OtherHelper.ConvertXMLToObject<HkModel>(HttpContext.Current.Server.MapPath($@"{ConfigurationManager.AppSettings["HkXml"]}")));
- /// <summary>
- /// 私有,,获取彩种配置的方法
- /// </summary>
- /// <returns></returns>
- private static IEnumerable<CzTypeModel> GetCzTypeModel()
- {
- var list = new List<CzTypeModel>();
- foreach (FieldInfo field in typeof(CzTypeEnum).GetFields())
- {
- if (!field.IsSpecialName)
- list.Add(new CzTypeModel
- {
- Name = ((DescriptionAttribute)Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute))).Description,
- Key = field.Name,
- Value = (int)field.GetRawConstantValue(),
- Parent = ((ParentAttribute)Attribute.GetCustomAttribute(field, typeof(ParentAttribute))).Parent,
- Img = ((ImgAttribute)Attribute.GetCustomAttribute(field, typeof(ImgAttribute))).Img,
- });
- }
- return list;
- }
- /// <summary>
- /// CzTypeEnum类型配置数据
- /// </summary>
- public static IEnumerable<CzTypeModel> CzTypeEnumList { get { return czTypeEnumList.Value; } }
- /// <summary>
- /// 从数据库获取彩种信息
- /// </summary>
- public static IEnumerable<Cz> CzList { get { return czList.Value; } }
- /// <summary>
- /// 得到chat表的数据
- /// </summary>
- public static IEnumerable<Chart> ChartList { get { return chartList.Value.Where(p => p.state == 0); } }
- /// <summary>
- /// 从数据库获取玩法信息
- /// </summary>
- public static IEnumerable<WF> WfList { get { return wfList.Value; } }
- /// <summary>
- /// 获取什么的配置数据(kjh和sjh)
- /// </summary>
- public static IEnumerable<WhatModel> WhatList { get { return whatList.Value; } }
- /// <summary>
- /// 新闻配置
- /// </summary>
- public static IEnumerable<NewsModel> NewsList { get { return newsList.Value; } }
- /// <summary>
- /// 香港生肖配置
- /// </summary>
- public static IEnumerable<HkModel> HkList { get { return hkList.Value; } }
- #endregion
- public static string KJXQImg(string value)
- {
- var dict = new Dictionary<string, string> {
- { QGEnum.fcsd.ToString(),"fc3d"},
- { DFEnum.gdhc1.ToString(),"hc1"},
- { GPEnum.tcah11x5.ToString(),"ah11x5"},
- };
- if (dict.ContainsKey(value))
- return dict[value];
- return value;
- }
- /// <summary>
- /// 得到奇偶比
- /// </summary>
- /// <param name="code"></param>
- /// <returns></returns>
- public static string GetJob(string code)
- {
- var list = code.Split('+')[0].Split(',').ToList();
- if (code.IsEmpty())
- return string.Empty;
- return list.Where(p => p.ToInt32() % 2 != 0).Count() + ":" + list.Where(p => p.ToInt32() % 2 == 0).Count();
- }
- /// <summary>
- /// 得到和值
- /// </summary>
- /// <param name="code"></param>
- /// <returns></returns>
- public static int GetHz(string code)
- {
- var list = code.Split('+')[0].Split(',').ToList();
- if (code.IsEmpty())
- return 0;
- return list.Sum(p => p.ToInt32());
- }
- /// <summary>
- /// 得到大小比
- /// </summary>
- /// <param name="code"></param>
- /// <returns></returns>
- public static string GetDxb(string code, int number)
- {
- var list = code.Split('+')[0].Split(',').ToList();
- if (code.IsEmpty())
- return string.Empty;
- return list.Where(p => p.ToInt32() >= number).Count() + ":" + list.Where(p => p.ToInt32() < number).Count();
- }
- /// <summary>
- /// 全国彩获取旧版类型URL的扩展
- /// </summary>
- /// <param name="qgEnum"></param>
- /// <returns></returns>
- public static string GetQGXQUrl(this QGEnum qgEnum)
- {
- return $"/xq_{RouteHelper.GetOldTypeName(qgEnum.ToString())}.aspx";
- }
- /// <summary>
- /// 将XML内容转换成目标对象实体集合
- /// </summary>
- /// <typeparam name="T">目标对象实体</typeparam>
- /// <param name="FileName">完整文件名(根目录下只需文件名称)</param>
- /// <param name="WrapperNodeName"></param>
- /// <returns></returns>
- public static List<T> ConvertXMLToObject<T>(string FileName, string WrapperNodeName = "UrlSetting")
- {
- XmlDocument doc = new XmlDocument();
- doc.Load(FileName);
- List<T> result = new List<T>();
- var TType = typeof(T);
- XmlNodeList nodeList = doc.ChildNodes;
- if (!string.IsNullOrEmpty(WrapperNodeName))
- {
- foreach (XmlNode node in doc.ChildNodes)
- {
- if (node.Name == WrapperNodeName)
- {
- nodeList = node.ChildNodes;
- break;
- }
- }
- }
- object oneT = null;
- foreach (XmlNode node in nodeList)
- {
- if (node.NodeType == XmlNodeType.Comment || node.NodeType == XmlNodeType.XmlDeclaration) continue;
- oneT = TType.Assembly.CreateInstance(TType.FullName);
- foreach (XmlNode item in node.ChildNodes)
- {
- if (item.NodeType == XmlNodeType.Comment) continue;
- var property = TType.GetProperty(item.Name);
- if (property != null)
- property.SetValue(oneT, Convert.ChangeType(item.InnerText, property.PropertyType), null);
- }
- result.Add((T)oneT);
- }
- return result;
- }
- /// <summary>
- /// 通过新版类型枚举获取chart数据(用于ChartType)
- /// </summary>
- /// <param name="ename"></param>
- /// <returns></returns>
- public static List<Chart> GetChartList(string ename, ChartType tid = ChartType.走势)
- {
- return (from a in CzList
- join b in ChartList on a.cid equals b.cid
- orderby b.seq ascending
- where a.ename == ename && b.tid == tid && !b.url.IsEmpty() && !b.url.Contains("http")
- select b).ToList();
- }
-
- }
- }
|