예제 #1
0
        public static List <IData> ConvertToHeaders(InputContainer container, Dictionary <string, string> headers)
        {
            List <IData> list = new List <IData>();

            if (headers == null)
            {
                return(list);
            }

            foreach (var header in headers)
            {
                var obj = new Headers
                {
                    Name  = header.Key,
                    Value = header.Value
                };
                list.Add(obj);
            }
            return(list);
        }
예제 #2
0
        public static DataTable ConvertToDataTable <T>(IList <T> data, InputContainer container)
        {
            //https://stackoverflow.com/questions/29898412/convert-listt-to-datatable-including-t-customclass-properties
            var properties  = TypeDescriptor.GetProperties(typeof(T));
            var outputTable = new DataTable();

            if (container.ColumnsMap.FirstOrDefault().Value.Contains("*"))
            {
                foreach (PropertyDescriptor prop in properties)
                {
                    outputTable.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
                }
            }
            foreach (PropertyDescriptor prop in properties)
            {
                //Will work only for sinle method in query will need to be rebuilded when JOIN will be designed
                if (container.ColumnsMap.FirstOrDefault().Value.Contains(prop.Name.ToLower()))
                {
                    var name = prop.Name;
                    if (outputTable.Columns.Contains(prop.Name))
                    {
                        name = prop.Name + "_1";
                    }
                    outputTable.Columns.Add(name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
                }
            }

            foreach (var item in data)
            {
                var row = outputTable.NewRow();
                foreach (DataColumn column in outputTable.Columns)
                {
                    var prop = properties.Find(column.ColumnName.Replace("_1", ""), false);
                    row[column.ColumnName] = prop.GetValue(item) ?? DBNull.Value;
                }
                outputTable.Rows.Add(row);
            }
            return(outputTable);
        }
예제 #3
0
 public WebRequest(InputContainer container)
 {
     this.container = container;
     _inputUrl      = new Uri(this.container.Url);
 }
예제 #4
0
 private static void GetWhereFromString(string formInput, InputContainer container)
 {
     //Parse where
     var where       = Regex.Match(formInput, "(?is)where\\s+(.+?)(\\s+$)?(\\s+into.+?$)?$").Groups[1].Value;
     container.Where = where;
 }