| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 | 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    {        /// <summary>        /// 将long转为yyyy-MM-dd        /// </summary>        /// <param name="timestamp"></param>        /// <returns></returns>        public static string LongToDate(object timestamp)        {            string strValue = timestamp?.ToString();            DateTime dateTime = DateTimeOffset.FromUnixTimeMilliseconds(long.Parse(strValue)).DateTime;            return dateTime.ToString("yyyy-MM-dd");        }        /// <summary>        /// 标准化为yyyy-MM-dd        /// </summary>        /// <param name="dateTime"></param>        /// <returns></returns>        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;        }        /// <summary>        /// 保存到扩展节点        /// </summary>        /// <param name="dateTime"></param>        /// <returns></returns>        public static void SaveToExpand(string key,object value)        {            if (key == null) return;            Utils.ExpandData(key, value);        }        /// <summary>        /// 获取全局变量        /// </summary>        /// <param name="value"></param>        /// <returns></returns>        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;        }        /// <summary>        /// 动态表达式        /// </summary>        /// <param name="person"></param>        /// <param name="expression"></param>        /// <returns></returns>        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;        }    }}
 |