Example #1
0
        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;
                }
            }
        }