
Originariamente inviata da
djciko
ti sposto. cerca di tradurre la parte c# per chi non la capisce
codice:
[Route("ExecuteQuery")]
[HttpPost]
//[Authorize]
public async Task<IEnumerable<Dictionary<string, object>>> ExecuteQuery([FromBody] QueryParameter parameter)
{
// QUESTO METODO MI RESTITUISCE UNA TABELLA (DEL TIPO .NET DataTable)
// IN BASE ALLA CONNECTION STRING (PER APRIRE LA CONNESIONE CON IL db)
// E LA QUERY LANCIATA (DALL'UTENTE MEDIANTE UI) PRESENTI NELL'OGGETTO CHE PASSO DI TIPO QueryParameter --> parameter
DataTable dt = await new DAL(_cfg).ExecuteQuery(parameter.BusinessItem, parameter.Query);
// ISTANZIO UNA LISTA DI DICTIONARY<KEY, VALUE>
List<Dictionary<string, object>> result = new List<Dictionary<string, object>>();
// DICHIARO UN DICTIONARY DOVE KEY è string, VALUE è object
Dictionary<string, object> item = null;
foreach (DataRow dr in dt.Rows) // PER OGNI RIGA DELLA TABELLA (dt.Rows)
{
foreach (DataColumn dc in dt.Columns) // PER OGNI COLONNA DELLA TABELLA (dt.Columns)
{
item.Add(dc.ColumnName, dr[dc]); // AGGIUNGO UN ELEMENTO AL DICTIONARY key = colonna.NomeColonna, riga[colonna]
}
result.Add(item); // ALLA FINE AGGIUNGO IL DICTIONARY ALLA LISTA
}
return result; // LA RESULT E' LA LISTA POPOLATA DI DICTIONARY
}