private List <T> Map <T>(SqlDataReader reader, ConfigProvader config) { var parsed = Parse(reader); var ans = new List <T>(); foreach (var dict in parsed) { ans.Add(config.Map <T>(dict)); } return(ans); }
private async Task <List <T> > MapAsync <T>(SqlDataReader reader, ConfigProvader config) { var parsed = await ParseAsync(reader); var ans = new List <T>(); foreach (var dict in parsed) { ans.Add(config.Map <T>(dict)); } return(ans); }
public List <PersonGeneral> GetPeopleWithJoin() { var ans = new List <PersonGeneral>(); var command = new SqlCommand(GET_PEOPLE_JOIN, connection); command.CommandType = System.Data.CommandType.StoredProcedure; command.CommandTimeout = 228; using (var scope = new TransactionScope()) { var reader = command.ExecuteReader(); while (reader.Read()) { var personGen = new PersonGeneral(); var dict = new Dictionary <string, object>(); for (int i = 0; i < 13; i++) { string name = reader.GetName(i); object val = reader.GetValue(i); dict.Add(name, val); } personGen.Person = config.Map <Person>(dict); dict = new Dictionary <string, object>(); for (int i = 13; i < 18; i++) { string name = reader.GetName(i); object val = reader.GetValue(i); dict.Add(name, val); } personGen.Password = config.Map <Password>(dict); dict = new Dictionary <string, object>(); for (int i = 18; i < 23; i++) { string name = reader.GetName(i); object val = reader.GetValue(i); dict.Add(name, val); } personGen.Email = config.Map <Email>(dict); dict = new Dictionary <string, object>(); for (int i = 23; i < 27; i++) { string name = reader.GetName(i); object val = reader.GetValue(i); dict.Add(name, val); } personGen.PersonPhone = config.Map <PersonPhone>(dict); dict = new Dictionary <string, object>(); for (int i = 27; i < 36; i++) { string name = reader.GetName(i); object val = null; try { val = reader.GetValue(i); } catch { continue; } dict.Add(name, val); } personGen.Address = config.Map <Address>(dict); ans.Add(personGen); } reader.Close(); } return(ans); }