public async Task <List <WunderlistViewModel> > GetDataAsync() { try { var(accessToken, clientId) = m_Credentials.GetWunderlistCredentials(); if (!Options.Value.Wunderlist.Lists.Any()) { Log.Error("No lists specified for Wunderlist API. Update your env variable 'Wunderlist__Lists'."); return(null); } var response = await m_HttpWrapper.GetAsync( UrlBuilder.Wunderlist.BuildListsUrl(accessToken, clientId)); var wunderlistItems = new List <WunderlistViewModel>(); var tasks = new List <Task>(); foreach (var data in FilterData(response)) { tasks.Add(Task.Run(async() => { var foundTasks = await GetTaskItemsForListAsync(data.Id); wunderlistItems.Add(WunderlistDtoMapper.MapToList(data.Name, foundTasks)); })); } await Task.WhenAll(tasks); return(wunderlistItems); } catch (Exception exception) { Log.Error(exception, $"Failed to get lists from Wunderlist: '{exception.Message}'"); throw; } }