public static List <ExpandoObject> ToDynamicObjects(List <Dictionary <string, string> > listDict, List <SyncObjectColumn> dataExtnCols) { SyncObjectColumn dataExnCol = null; var eoLst = new List <ExpandoObject>(); foreach (var dic in listDict) { IDictionary <string, object> eo = new ExpandoObject() as IDictionary <string, object>; foreach (var pair in dic) { dataExnCol = dataExtnCols.Where(p => p.name.ToLower() == pair.Key.ToLower()).FirstOrDefault(); if (dataExnCol != null) { switch (dataExnCol.fieldType.ToLower()) { case "date": case "datetime": eo.Add(pair.Key, (string.IsNullOrEmpty(pair.Value) ? default(DateTime) : Convert.ToDateTime(pair.Value))); break; case "number": eo.Add(pair.Key, (string.IsNullOrEmpty(pair.Value) ? default(int) : Convert.ToInt32(pair.Value))); break; case "long": eo.Add(pair.Key, (string.IsNullOrEmpty(pair.Value) ? default(long) : Convert.ToInt64(pair.Value))); break; case "float": case "double": case "decimal": eo.Add(pair.Key, (string.IsNullOrEmpty(pair.Value) ? default(double) : Convert.ToDouble(pair.Value))); break; case "boolean": eo.Add(pair.Key, (string.IsNullOrEmpty(pair.Value) ? default(bool) : Convert.ToBoolean(pair.Value))); break; default: eo.Add(pair.Key, string.IsNullOrEmpty(pair.Value) ? null : pair.Value); break; } } else { eo.Add(pair.Key, string.IsNullOrEmpty(pair.Value) ? null : pair.Value); } } eoLst.Add((dynamic)eo); } return(eoLst); }
public static object With(this IDictionary <string, string> objDic, List <SyncObjectColumn> dataExtnCols) { SyncObjectColumn dataExnCol = null; IDictionary <string, object> eo = new ExpandoObject() as IDictionary <string, object>; foreach (var name in objDic.Keys) { dataExnCol = dataExtnCols.Where(p => p.name.ToLower() == name.ToLower()).FirstOrDefault(); if (dataExnCol != null) { switch (dataExnCol.fieldType.ToLower()) { case "date": case "datetime": eo.Add(name, (string.IsNullOrEmpty(objDic[name]) ? default(DateTime) : Convert.ToDateTime(objDic[name]))); break; case "number": eo.Add(name, (string.IsNullOrEmpty(objDic[name]) ? default(int) : Convert.ToInt32(objDic[name]))); break; case "long": eo.Add(name, (string.IsNullOrEmpty(objDic[name]) ? default(long) : Convert.ToInt64(objDic[name]))); break; case "float": case "double": case "decimal": eo.Add(name, (string.IsNullOrEmpty(objDic[name]) ? default(double) : Convert.ToDouble(objDic[name]))); break; case "boolean": eo.Add(name, (string.IsNullOrEmpty(objDic[name]) ? default(bool) : Convert.ToBoolean(objDic[name]))); break; default: eo.Add(name, string.IsNullOrEmpty(objDic[name]) ? null : objDic[name]); break; } } else { eo.Add(name, string.IsNullOrEmpty(objDic[name]) ? null : objDic[name]); } } return(eo); }