I am working on a legacy project.
public List<object> GetExternalDataSets(int dataSourceId)
{
var dataSource = _context.DataSources.FirstOrDefault(x => x.DataSourceId == dataSourceId);
if (dataSource != null)
{
if (dataSource.DataSourceType != "PowerBI")
{
var dbInfo = GetDataSourceInfo(dataSource);
IExternalDbContext externalDbContext = ExternalContextFactory.GetExternalDbContext(dbInfo, config);
return externalDbContext.GetAllTables(dbInfo.DBName);
}
else {
//Part added by me
return powerBIService.GetPowerBIDatasetsAsync(dataSource.WorkspaceId);
}
}
return new List<object>();
}
I have added few new lines to it. But powerBIService.GetPowerBIDatasetsAsync(dataSource.WorkspaceId);
is returning the type of Task<object>
. How can I convert it to List<object>
.
CodePudding user response:
By awaiting the task. Make your method async
:
public async Task<List<object>> GetExternalDataSets(int dataSourceId)
And await the task:
return await powerBIService.GetPowerBIDatasetsAsync(dataSource.WorkspaceId);
Regarding your edit...
is returning the type of
Task<object>
. How can I convert it toList<object>
In that case you'd also have to add the awaited object
to a List
:
var obj = await powerBIService.GetPowerBIDatasetsAsync(dataSource.WorkspaceId);
return new List<object> { obj };