public List <QueryMetadata> GetColumns(string tableName) { var result = MacheteAdoContext.getMetadata($"select top 0 * from {tableName}", _readonlyConnectionString); result.ForEach(c => c.include = true); return(result); }
public List <dynamic> GetDynamicQuery(int id, SearchOptions o) { ReportDefinition report = dbset.Single(a => a.ID == id); List <QueryMetadata> meta = MacheteAdoContext.getMetadata(report.sqlquery, _readonlyConnectionString); Type queryType = ILVoodoo.buildQueryType(meta); MethodInfo method = Type.GetType("Machete.Service.MacheteAdoContext") .GetMethod("SqlQuery", new[] { typeof(string), typeof(string), typeof(SqlParameter[]) }); MethodInfo man = method.MakeGenericMethod(queryType); var blarg = new List <SqlParameter>() { new SqlParameter { ParameterName = "beginDate", Value = o.beginDate }, new SqlParameter { ParameterName = "endDate", Value = o.endDate } }; if (o.dwccardnum != null) { blarg.Add(new SqlParameter { ParameterName = "dwccardnum", Value = o.dwccardnum }); } dynamic dynamicQuery = man.Invoke(null, new object[] { report.sqlquery, _readonlyConnectionString, blarg.ToArray <SqlParameter>() }); var dynamicList = new List <dynamic>(); foreach (var row in dynamicQuery) { dynamicList.Add(row); } return(dynamicList); }