public async Task <IEnumerable <JsonModel> > QueryAsync(JsonModel model) { Task <IEnumerable <JsonModel> > taskInvoke = Task <IEnumerable <JsonModel> > .Factory.StartNew(() => { switch (model.GetType().Name) { case "User": var users = jsonService.QueryAsync(_userRepository).Result.Cast <User>(); return(users); case "Permission": var permissions = jsonService.QueryAsync(_userRoleRepository).Result.Cast <Permission>(); return(permissions); default: return(new List <JsonModel>()); } }); return(await taskInvoke); }