using CP.Model; using System; using System.Collections.Generic; using System.Linq; using System.Web; using CP.Common; using System.Configuration; using System.Linq.Expressions; namespace CP.Kjh.Models { public class RouteHelper { #region 配置 private static readonly Lazy<List<RouteModel>> routeList = new Lazy<List<RouteModel>>(() => { var data = OtherHelper.ConvertXMLToObject<RouteModel>(HttpContext.Current.Server.MapPath($@"{ConfigurationManager.AppSettings["RouteXml"]}")); data.ForEach(p => { if (p.ViewNewName.IsEmpty()) p.ViewNewName = p.OldName; }); return data; }); private static readonly Lazy<List<RouteModel>> homeRouteList = new Lazy<List<RouteModel>>(() => OtherHelper.ConvertXMLToObject<RouteModel>(HttpContext.Current.Server.MapPath($@"{ConfigurationManager.AppSettings["HomeRouteXml"]}"))); /// <summary> /// 彩种类型配置数据 /// </summary> public static List<RouteModel> RouteList { get { return routeList.Value; } } /// <summary> /// 首页的路由配置数据 /// </summary> public static List<RouteModel> HomeRouteList { get { return homeRouteList.Value; } } #endregion /// <summary> /// 得到新版类型名称 /// </summary> /// <param name="oldTypeName"></param> /// <returns></returns> public static string GetNewTypeName(string oldTypeName) { var list = RouteList.Where(p => p.OldName == oldTypeName).ToList(); if (list.Count > 0) return list[0].NewName; return oldTypeName; } /// <summary> /// 得到旧版类型名称 /// </summary> /// <param name="newTypeName"></param> /// <returns></returns> public static string GetOldTypeName(string newTypeName) { var list = RouteList.Where(p => p.NewName == newTypeName).ToList(); if (list.Count > 0) return list[0].OldName; return newTypeName; } /// <summary> /// 得到路由集合 /// </summary> /// <returns></returns> public static List<RouteModel> GetRouteList(CzTypeEnum? czTypeEnum) { if (czTypeEnum.HasValue) return RouteList.Where(p => p.CzTypeEnum == (int)czTypeEnum && p.IsShow == true).ToList(); return RouteList; } /// <summary> /// 得到首页的路由集合 /// </summary> /// <returns></returns> public static List<RouteModel> GetHomeRouteList() { return HomeRouteList; } } }