private async Task <IEnumerable <AvailableTarget> > GetTargetsAsync() { var allTargetInfos = await _apiPortService.GetTargetsAsync(); // We don't want any grouped targets as that option only makes sense for command line var targetInfos = allTargetInfos.Response.Where(t => !t.ExpandedTargets.Any()); var platformNames = new HashSet <string>(targetInfos.Select(t => t.Name), StringComparer.OrdinalIgnoreCase); var uniqueFromTargetMap = _targetMapper.Aliases .Where(a => !_targetMapper.GetNames(a).Any(platformNames.Contains)) .Select(a => new AvailableTarget { Name = a }); return(targetInfos.Concat(uniqueFromTargetMap).ToList()); }
/// <summary> /// Retrieve a list of targets available from the service /// </summary> /// <returns></returns> public async Task <IEnumerable <AvailableTarget> > GetTargetsAsync() { using (var progressTask = _progressReport.StartTask(LocalizedStrings.RetrievingTargets)) { try { var targets = await _apiPortService.GetTargetsAsync(); CheckEndpointStatus(targets.Headers.Status); return(targets.Response); } catch (Exception) { progressTask.Abort(); throw; } } }