public async Task ReadBusinessObject(BusinessBase obj) { var set = GetType() .GetMethod("Set") .MakeGenericMethod(obj.ModelType) .Invoke(this, null); var keys = obj.Keys; var task = (Task)set .GetType() .GetMethod("FindAsync", new[] { typeof(object[]) }) .Invoke(set, new[] { keys }); await task.ConfigureAwait(false); var found = task.GetType().GetProperty("Result").GetValue(task); if (found != null) { obj.FromModelObject(found); } }
public async Task ReadBusinessCollection(BusinessCollectionBase col) { string sql = col.SQLQuery; object param = col.SQLParameters; var result = await(Task <IEnumerable <object> >) GetType() .GetMethod("QueryAsync") .MakeGenericMethod(col.ActiveObject.ModelType) .Invoke(this, new object[] { sql, param }); col.Clear(); foreach (var item in result) { BusinessBase obj = col.CreateNew(); obj.FromModelObject(item); obj.IsModified = false; obj.IsNew = false; col.Add(obj); } }