public List <IViewModel> getViewModel <T>(IEnumerable <T> dbModel, Table_Type type) where T : class { List <IViewModel> datas = new List <IViewModel>(); var obj = FactoryRegistry.GetInstance(type); if (dbModel == null || obj == null) { return(datas); } var viewpros = obj.GetType().GetProperties(); if (!dbModel.Any()) { return(datas); } var dbpros = dbModel.First().GetType().GetProperties(); dbModel.ToList().ForEach(db => { obj = FactoryRegistry.GetInstance(type); foreach (var item in viewpros) { var p = dbpros.FirstOrDefault(x => x.Name.ToUpper() == item.Name.ToUpper()); if (p != null) { var _pt = p.PropertyType; if (_pt == typeof(string)) { item.SetValue(obj, p.GetValue(db)); } else if (_pt == typeof(DateTime) || _pt == typeof(Nullable <DateTime>)) { if (p.GetValue(db) != null) { item.SetValue(obj, TypeTransfer.objDateToString(p.GetValue(db))); } else { item.SetValue(obj, string.Empty); } } else if (_pt == typeof(TimeSpan) || _pt == typeof(Nullable <TimeSpan>)) { if (p.GetValue(db) != null) { item.SetValue(obj, TypeTransfer.objTimeSpanToString(p.GetValue(db))); } else { item.SetValue(obj, string.Empty); } } else { if (p.GetValue(db) != null) { item.SetValue(obj, p.GetValue(db).ToString()); } else { item.SetValue(obj, string.Empty); } } } } datas.Add(obj); }); return(datas); }