private void ValidateWorkloadIdsInput() { var availableWorkloads = _workloadResolver.GetAvailableWorkloads(); foreach (var workloadId in _workloadIds) { if (!availableWorkloads.Select(workload => workload.Id.ToString()).Contains(workloadId)) { if (_workloadResolver.IsPlatformIncompatibleWorkload(new WorkloadId(workloadId))) { throw new GracefulException(string.Format(LocalizableStrings.WorkloadNotSupportedOnPlatform, workloadId), isUserError: false); } else { throw new GracefulException(string.Format(LocalizableStrings.WorkloadNotRecognized, workloadId), isUserError: false); } } } }
public override int Execute() { IEnumerable <WorkloadResolver.WorkloadInfo> availableWorkloads = _workloadResolver.GetAvailableWorkloads() .OrderBy(workload => workload.Id); if (!string.IsNullOrEmpty(_workloadIdStub)) { availableWorkloads = availableWorkloads.Where(workload => workload.Id.ToString().Contains(_workloadIdStub, StringComparison.OrdinalIgnoreCase)); } var table = new PrintableTable <WorkloadResolver.WorkloadInfo>(); table.AddColumn(LocalizableStrings.WorkloadIdColumnName, workload => workload.Id.ToString()); table.AddColumn(LocalizableStrings.DescriptionColumnName, workload => workload.Description); _reporter.WriteLine(); table.PrintRows(availableWorkloads, l => _reporter.WriteLine(l)); _reporter.WriteLine(); return(0); }
internal static IEnumerable <string> GetAvailableVisualStudioWorkloads(IWorkloadResolver workloadResolver) => workloadResolver.GetAvailableWorkloads().Select(w => w.Id.ToString().Replace('-', '.'));