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 { /// /// 将long转为yyyy-MM-dd /// /// /// public static string LongToDate(object timestamp) { string strValue = timestamp?.ToString(); DateTime dateTime = DateTimeOffset.FromUnixTimeMilliseconds(long.Parse(strValue)).DateTime; return dateTime.ToString("yyyy-MM-dd"); } /// /// 标准化为yyyy-MM-dd /// /// /// public static string ShortDate(object dateTime) { string strValue = (dateTime??"").ToString(); if (!strValue.Contains("-") && strValue.Length > 8) { return strValue.Substring(0, 4) + "-" + strValue.Substring(4,2) + "-"+strValue.Substring(6,2); } return strValue.Length > 10 ? strValue.Substring(0, 10) : 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 "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 "clearway": return Global.Set.clearingWay; case "insuplc": return Utils.GetInsuCode(); case "mdtrtarea": return Global.pat.mdtrtarea_admvs; case "ectoken": return Global.pat.ecToken; 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; } } }