有些系統上面的配置能夠作成config裏面的appsetting。這裏要求寫在json文件裏面。json
using Newtonsoft.Json; using System.IO; using Newtonsoft.Json.Linq; using System.Web;
{ "StatisticalChart": { "0": "/Common/CountReport/DefaultStatis", "68": "/Common/CountReport/CustomerManagerStatis", "98": "/Common/CountReport/FirstExamineStatis", "84": "/Common/CountReport/QualityCheckStatis", "112": "/Common/CountReport/ElectricFinalCheckStatis", "70": "/Common/CountReport/ExecutiveDirectorStatis" }, "NameGetCode":{ "Default": "0", "CustomerManager": "68", "FirstExamine": "98", "QualityCheck": "84", "ElectricFinalCheck": "112", "ExecutiveDirector": "70" } }
/// <summary> /// 經過角色讀取配置文件返回地址 /// </summary> /// <param name="power">權限編號</param> /// <returns></returns> public static string GetUrlByPower(string power) { string url = ""; try { //文件路徑 string jsonfile = HttpContext.Current.Server.MapPath($"\\App_Data\\config\\StatisticalChartConfig.json"); //打開文件 System.IO.StreamReader file = System.IO.File.OpenText(jsonfile); //加載問卷 JsonTextReader reader = new JsonTextReader(file); //轉化爲JObject JObject ojb = (JObject)JToken.ReadFrom(reader); //讀取StatisticalChart節點 var list = ojb["StatisticalChart"].ToString(); JObject jo = (JObject)JsonConvert.DeserializeObject(list); var dat = jo[power]; if (dat == null) url = ""; else url = dat.ToString(); } catch (Exception e) { url = ""; throw new Exception($"初始化JSON流程配置失敗:{e.Message}"); } return url; }
//讀取json文件獲取代碼對應的省市縣 string jsonfile =HttpContext.Current.Server.MapPath($"\\App_Data\\Config\\AreasData.json"); StreamReader file = File.OpenText(jsonfile); JsonTextReader reader = new JsonTextReader(file); var obj = JToken.ReadFrom(reader).ToList(); for (int i = 0; i < obj.Count; i++) { JObject jo = (JObject)JsonConvert.DeserializeObject(obj[i].ToString()); if (jo["zoneCode"].ToString() == AreasCodess) { var Data = new AreasCode() { Province = jo["province"].ToString(), ProvinceCode = jo["provinceCode"].ToString(), City = jo["city"].ToString(), CityCode = jo["cityCode"].ToString(), Country = jo["zone"].ToString(), CountryCode = jo["zoneCode"].ToString() }; list.Add(Data); break; } }
/// <summary> /// 獲取身份證信息 /// </summary> /// <param name="identityCard">身份證號碼</param> /// <param name="ageIsTrue">顯示年齡是不是真實大小(當前年份減去出生年份 月份 日期都要計算)</param> /// <returns>List->IDCard模型</returns> public static List<IDCard> GetIDCardInfo(string identityCard, bool ageIsTrue = true) { if (string.IsNullOrEmpty(identityCard))//爲空返回null return null; else { if (identityCard.Length != 15 && identityCard.Length != 18)//身份證號碼只能爲15位或18位其它不合法 return null; } List<IDCard> dCards = new List<IDCard>(); IDCard card = new IDCard(); string strSex = string.Empty; //530326 1994 1201 2521 if (identityCard.Length == 18)//處理18位的身份證號碼從號碼中獲得生日和性別代碼 { //出身年月日 card.Birthday = identityCard.Substring(6, 4) + "-" + identityCard.Substring(10, 2) + "-" + identityCard.Substring(12, 2); strSex = identityCard.Substring(14, 3);// } //530323 670401 001的含義; 530爲雲南,03爲曲靖 ,23是師宗,出生日期爲1967年4月1日,順序號爲001。 if (identityCard.Length == 15) { card.Birthday = "19" + identityCard.Substring(6, 2) + "-" + identityCard.Substring(8, 2) + "-" + identityCard.Substring(10, 2); //性別代碼 strSex = identityCard.Substring(12, 3); } card.Age = CalculateAge(card.Birthday, ageIsTrue);//根據生日計算年齡 if (int.Parse(strSex) % 2 == 0)//性別代碼爲偶數是女性奇數爲男性 card.Sex = "女"; else card.Sex = "男"; string AreasCodess = identityCard.Substring(0, 6); List<AreasCode> list = new List<AreasCode>(); try { //讀取json文件獲取代碼對應的省市縣 string jsonfile =HttpContext.Current.Server.MapPath($"\\App_Data\\Config\\AreasData.json"); StreamReader file = File.OpenText(jsonfile); JsonTextReader reader = new JsonTextReader(file); var obj = JToken.ReadFrom(reader).ToList(); for (int i = 0; i < obj.Count; i++) { JObject jo = (JObject)JsonConvert.DeserializeObject(obj[i].ToString()); if (jo["zoneCode"].ToString() == AreasCodess) { var Data = new AreasCode() { Province = jo["province"].ToString(), ProvinceCode = jo["provinceCode"].ToString(), City = jo["city"].ToString(), CityCode = jo["cityCode"].ToString(), Country = jo["zone"].ToString(), CountryCode = jo["zoneCode"].ToString() }; list.Add(Data); break; } } if (list.Count > 0) { card.Province = list[0].Province; card.ProvinceCode = list[0].ProvinceCode; card.City = list[0].City; card.CityCode = list[0].CityCode; card.Country = list[0].Country; card.AreasCode = list[0].CountryCode; card.AddressAreas = list[0].Province + list[0].City + list[0].Country; } dCards.Add(card); return dCards; } catch (Exception xx) { dCards[0].Msg = xx.Message; return dCards; } } /// <summary> /// 身份證信息實體類 /// </summary> public class IDCard { /// <summary> /// 年齡 /// </summary> public int Age { get; set; } /// <summary> /// 性別 /// </summary> public string Sex { get; set; } /// <summary> /// 生日 /// </summary> public string Birthday { get; set; } /// <summary> /// 省份 /// </summary> public string Province { get; set; } /// <summary> /// 市區 /// </summary> public string City { get; set; } /// <summary> /// 縣城 /// </summary> public string Country { get; set; } /// <summary> /// 身份證所在區域(省市縣) /// </summary> public string AddressAreas { get; set; } /// <summary> /// 區域代碼 /// </summary> public string AreasCode { get; set; } /// <summary> /// 省代碼 /// </summary> public string ProvinceCode { get; set; } /// <summary> /// 縣/區代碼 /// </summary> public string CityCode { get; set; } /// <summary> /// 信息 /// </summary> public string Msg { get; set; } /// <summary> /// 狀態 /// </summary> public string Status { get; set; } } /// <summary> /// 實體類(省市縣跟代碼)身份證前6位數字 /// </summary> public class AreasCode { /// <summary> /// 省份 /// </summary> public string Province { get; set; } /// <summary> /// 省份代碼 /// </summary> public string ProvinceCode { get; set; } /// <summary> /// 市 /// </summary> public string City { get; set; } /// <summary> /// 市/區 代碼 /// </summary> public string CityCode { get; set; } /// <summary> /// 縣 /// </summary> public string Country { get; set; } /// <summary> /// 縣代碼 /// </summary> public string CountryCode { get; set; } } /// <summary> /// 根據出生日期,計算精確的年齡 /// </summary> /// <param name="birthDate">生日</param> /// <returns>年齡</returns> public static int CalculateAge(string birthDay, bool ageIs = true) { DateTime birthDate = DateTime.Parse(birthDay); DateTime nowDateTime = DateTime.Now; int age = nowDateTime.Year - birthDate.Year; //再考慮月、天的因素 if (ageIs) { if (nowDateTime.Month < birthDate.Month || (nowDateTime.Month == birthDate.Month && nowDateTime.Day < birthDate.Day)) { age--; } } return age; }