using Newtonsoft.Json.Linq; using PTMedicalInsurance.Variables; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PTMedicalInsurance.Common { class ExpressionEvaluator { /// /// 转字符串 /// /// /// public static string ConvertToString(object value) { return string.Format("{0}", value); } /// /// 将long转为yyyy-MM-dd /// /// /// public static string LongToDate(object timestamp) { string strValue = timestamp?.ToString(); return Utils.ConvertLongToDate(strValue); } /// /// 标准化为yyyy-MM-dd /// /// /// public static string ShortDate(object dateTime) { string strValue = (dateTime??"").ToString(); return Utils.ConvertShortDate(strValue); } public static string NoSplitDate(object dateTime) { string strValue = (dateTime ?? "").ToString(); return Utils.ConvertNoSplitDate(strValue); } /// /// 保存到扩展节点 /// /// /// public static void SaveToExpand(string key,object value) { if (key == null) return; Utils.ExpandData(key, value); } /// /// 获取全局变量 /// /// /// public static string GlobaVariables(object value) { string key = value?.ToString(); if (key!=null && key.StartsWith("Global_")) { string varKey = key.Replace("Global_",""); switch (varKey) { case "mdtrtid": return Global.pat.mdtrtID; case "admid": return Global.pat.adm_Dr.ToString(); case "gender": return Global.pat.gend; case "name": return Global.pat.name; case "psn": return Global.pat.psn_no; case "birthday": return Global.pat.brdy; case "age": return Global.pat.age; case "insutype": return Global.pat.insuType; case "medtype": return Global.pat.medType; case "certtype": //证件类型 return Global.pat.mdtrtcertType; case "certno": //证件号 return Global.pat.mdtrtcertNO; case "clearway": return Global.Set.clearingWay; case "insuplc": return Utils.GetInsuCode(); case "insuorg": return Utils.GetInsuOrgCode(); case "mdtrtarea": return Global.pat.mdtrtarea_admvs; case "ectoken": return Global.pat.ecToken; case "eccardno": return Global.pat.ecCardNo; case "cardsn": return Global.pat.card.SN; //卡识别码 case "settlid": return Global.pat.settlID; case "biztype": return Global.businessType; default: return string.Empty; } } return string.Empty; } /// /// 动态表达式 /// /// /// /// public object Run(string data, string expression) { //var options = ScriptOptions.Default // .AddReferences(typeof(string).Assembly) // .AddImports("System"); //try //{ // return CSharpScript.EvaluateAsync(expression, options, person).Result; //} //catch (CompilationErrorException e) //{ // throw new InvalidOperationException("Compilation error: " + e.Diagnostics, e); //} return null; } } }