| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | using Newtonsoft.Json.Linq;using PTMedicalInsurance.Entity;using System;using System.Collections.Generic;using System.ComponentModel;using System.Linq;using System.Reflection;using System.Text;using System.Threading.Tasks;namespace PTMedicalInsurance.Common{    public static class AppExtension    {        /// <summary>        /// 获取交易枚举对于的code信息        /// </summary>        public static string GetCode(this TradeEnum tradeEnum)        {            Type type = tradeEnum.GetType();            FieldInfo fd = type.GetField(tradeEnum.ToString());            return getFieldCode(fd);        }        public static ModeEnum GetMode(this TradeEnum tradeEnum)        {            Type type = tradeEnum.GetType();            FieldInfo fd = type.GetField(tradeEnum.ToString());            TradeAttribute attribute = getAttribte(fd);            if (attribute != null) return attribute.Mode;            // 默认值            return ModeEnum.REST;        }        public static TradeEnum GetByCode(this TradeEnum tradeEnum,string code)        {            Type type = tradeEnum.GetType();            FieldInfo[] fds = type.GetFields();            foreach (FieldInfo fd in fds)            {                TradeAttribute attribute = getAttribte(fd);                if (code.Equals(attribute?.Code))                {                    return (TradeEnum)fd.GetValue(tradeEnum);                }            }            return TradeEnum.DEFAULT;        }        private static TradeAttribute getAttribte(FieldInfo fd)        {            TradeAttribute attribute = null;            if (fd == null)            {                return attribute;            }            var attributes = fd.GetCustomAttributes(typeof(TradeAttribute), false);            if (attributes != null && attributes.Length == 1)            {                attribute = attributes.Single() as TradeAttribute;                return attribute;            }            return attribute;        }        public static string Text(this JToken jtoken)        {            if (jtoken == null) return string.Empty;            return jtoken.ToString();        }        public static int Int(this JToken jtoken)        {            if (jtoken == null) return 0;            return int.Parse(jtoken.ToString());        }        private static string getFieldCode(FieldInfo fd)        {            TradeAttribute attribute = getAttribte(fd);            return attribute?.Code;        }        public static void Extend(this JObject jObject,string key,object value)        {            if (jObject != null && !jObject.ContainsKey(key))            {                jObject.Add(key, new JValue(value));            }        }    }}
 |