コード例 #1
0
        /// <summary>
        /// 翻译单个实体
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="t"></param>
        /// <returns></returns>
        public T Translate <T>(T t, LanguageEmun language)
        {
            if (language == LanguageEmun.CHINESE)
            {
                return(t);
            }

            var lan = (int)language;

            Type   type      = typeof(T);
            string tableName = type.Name;

            PropertyInfo[] fileds    = type.GetProperties();
            string[]       strFileds = fileds.Select(f => f.Name).ToArray();
            int            id        = Convert.ToInt32(type.GetProperty("id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.IgnoreCase).GetValue(t, null));

            var refsDatas = DbContext.Refs.Where(x => x.TableName == tableName && x.RowID == id).ToList();

            foreach (string fileName in strFileds)
            {
                var prop   = type.GetProperty(fileName);
                var entity = refsDatas.Where(m => m.TableName == tableName &&
                                             m.FiledName == fileName &&
                                             m.RowID == id &&
                                             m.LanguageID == lan).FirstOrDefault();
                if (entity != null)
                {
                    prop.SetValue(t, Convert.ChangeType(entity.RowValue, prop.PropertyType));
                }
            }
            return(t);
        }
コード例 #2
0
 /// <summary>
 /// 翻译集合实体
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="entityList"></param>
 /// <returns></returns>
 public List <T> Translate <T>(List <T> entityList, LanguageEmun language)
 {
     foreach (var entity in entityList)
     {
         Translate(entity, language);
     }
     return(entityList);
 }