public override async Task <IISSitesOptions> Aquire(IInputService input, RunLevel runLevel)
        {
            var ret   = new IISSitesOptions();
            var sites = _siteHelper.GetSites(true).
                        Where(x => !_arguments.MainArguments.HideHttps || x.Https == false).
                        Where(x => x.Hosts.Any()).
                        ToList();

            if (!sites.Any())
            {
                _log.Error($"No sites with named bindings have been configured in IIS. Add one or choose '{ManualOptions.DescriptionText}'.");
                return(null);
            }
            input.WritePagedList(
                sites.Select(x =>
                             Choice.Create(x,
                                           $"{x.Name} ({x.Hosts.Count()} binding{(x.Hosts.Count()==1?"":"s")})",
                                           x.Id.ToString(),
                                           color: x.Https ? ConsoleColor.DarkGray : (ConsoleColor?)null)).ToList());

            var sanInput = await input.RequestString("Enter a comma separated list of SiteIds or 'S' for all sites");

            sites = ProcessSiteIds(ret, sites, sanInput);
            if (sites != null)
            {
                var hosts = sites.SelectMany(x => x.Hosts).Distinct().OrderBy(x => x);
                if (await _optionsHelper.AquireAdvancedOptions(input, hosts, runLevel, ret))
                {
                    return(ret);
                }
            }
            return(null);
        }
Example #2
0
        public override IISSitesOptions Aquire(IArgumentsService arguments, IInputService input, RunLevel runLevel)
        {
            var ret   = new IISSitesOptions();
            var sites = _siteHelper.GetSites(arguments.MainArguments.HideHttps, true).
                        Where(x => x.Hidden == false).
                        Where(x => x.Hosts.Any()).
                        ToList();

            if (!sites.Any())
            {
                _log.Error($"No sites with named bindings have been configured in IIS. Add one or choose '{ManualOptions.DescriptionText}'.");
                return(null);
            }
            input.WritePagedList(sites.Select(x => Choice.Create(x, $"{x.Name} ({x.Hosts.Count()} bindings)", x.Id.ToString())).ToList());
            var sanInput = input.RequestString("Enter a comma separated list of SiteIds or 'S' for all sites");

            sites = ProcessSiteIds(ret, sites, sanInput);
            if (sites == null)
            {
                return(null);
            }
            var hosts = sites.SelectMany(x => x.Hosts).Distinct().OrderBy(x => x);

            if (_optionsHelper.AquireAdvancedOptions(input, hosts, runLevel, ret))
            {
                return(ret);
            }
            return(ret);
        }
        public override IISSiteOptions Aquire(IArgumentsService arguments, IInputService input, RunLevel runLevel)
        {
            var ret   = new IISSiteOptions();
            var sites = _siteHelper.
                        GetSites(arguments.MainArguments.HideHttps, true).
                        Where(x => x.Hidden == false).
                        Where(x => x.Hosts.Any());

            if (!sites.Any())
            {
                _log.Error($"No sites with named bindings have been configured in IIS. Add one or choose '{ManualOptions.DescriptionText}'.");
                return(null);
            }
            var chosen = input.ChooseFromList("Choose site",
                                              sites,
                                              x => Choice.Create(x, x.Name),
                                              "Abort");

            if (chosen != null)
            {
                ret.SiteId = chosen.Id;
                if (_optionsHelper.AquireAdvancedOptions(input, chosen.Hosts, runLevel, ret))
                {
                    return(ret);
                }
            }
            return(null);
        }
Example #4
0
        public async override Task <IISSiteOptions> Aquire(IInputService input, RunLevel runLevel)
        {
            var ret   = new IISSiteOptions();
            var sites = _siteHelper.
                        GetSites(true).
                        Where(x => !_arguments.MainArguments.HideHttps || x.Https == false).
                        Where(x => x.Hosts.Any());

            if (!sites.Any())
            {
                _log.Error($"No sites with named bindings have been configured in IIS. Add one or choose '{ManualOptions.DescriptionText}'.");
                return(null);
            }

            var chosen = await input.ChooseFromList("Choose site",
                                                    sites,
                                                    x => Choice.Create(x,
                                                                       $"{x.Name} ({x.Hosts.Count()} binding{(x.Hosts.Count() == 1 ? "" : "s")})",
                                                                       x.Id.ToString(),
                                                                       color: x.Https ? ConsoleColor.DarkGray : (ConsoleColor?)null),
                                                    "Abort");

            if (chosen != null)
            {
                ret.SiteId = chosen.Id;
                if (await _optionsHelper.AquireAdvancedOptions(input, chosen.Hosts, runLevel, ret))
                {
                    return(ret);
                }
            }
            return(null);
        }