Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }