示例#1
0
        /// <summary>
        /// 执行命令。
        /// </summary>
        /// <param name="context">命令执行上下文。</param>
        public override void Execute(CommandExecuteContext context)
        {
            var settings = ShellSettingsManager.LoadSettings()
                           .FirstOrDefault(i => i.Name.Equals(TenantName, StringComparison.OrdinalIgnoreCase));

            if (settings == null)
            {
                context.WriteLine("找名称为 '{0}' 的租户信息。", TenantName);
                return;
            }
            if (Domains == null)
            {
                Domains = new List <string>();
            }
            Domains = Domains.Where(i => !string.IsNullOrWhiteSpace(i)).Select(i => i.Trim()).ToList();

            var host = settings["RequestUrlHost"];

            string[] hosts = null;
            var      msg   = string.Empty;

            context.Is(() =>
            {
                msg      = "添加";
                var list = string.IsNullOrWhiteSpace(host)
                    ? new string[0]
                    : host.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToArray();
                var domains = Domains.Where(i => !list.Any(d => i.Equals(d, StringComparison.OrdinalIgnoreCase)));
                hosts       = list.Concat(domains).ToArray();
            }, "Add-SiteDomain");

            context.Is(() =>
            {
                msg   = "设置";
                hosts = Domains.ToArray();
            }, "Set-SiteDomain");

            context.Is(() =>
            {
                msg      = "删除";
                var list = string.IsNullOrWhiteSpace(host)
                    ? new string[0]
                    : host.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToArray();
                hosts = list.Where(i => !Domains.Any(d => i.Equals(d, StringComparison.OrdinalIgnoreCase))).ToArray();
            }, "Remove-SiteDomain", "Delete-SiteDomain");

            if (hosts == null)
            {
                return;
            }

            settings["RequestUrlHost"] = string.Join(",", hosts);
            ShellSettingsManager.SaveSettings(settings);

            context.WriteLine(msg + "成功。");
        }
示例#2
0
        /// <summary>
        /// 执行命令。
        /// </summary>
        /// <param name="context">命令执行上下文。</param>
        public override void Execute(CommandExecuteContext context)
        {
            var settings = SettingsManager.LoadSettings().FirstOrDefault(i => string.Equals(i.Name, TenantName, StringComparison.OrdinalIgnoreCase));
            var isAdd    = settings == null;

            if (settings != null && !Quiet)
            {
                context.WriteLine("已经存在名称为 '{0}' 的租户,确定要替换吗?\t输入'Y'继续执行,输入其他则终止执行。", TenantName);
                var t = context.Read("y");
                if (!t.Equals("y", StringComparison.OrdinalIgnoreCase))
                {
                    return;
                }
            }
            else
            {
                settings = new ShellSettings();
            }

            if (List != null)
            {
                foreach (var temp in List.Where(i => !string.IsNullOrWhiteSpace(i)))
                {
                    var index = temp.IndexOf("=", StringComparison.Ordinal);
                    if (index == -1)
                    {
                        continue;
                    }

                    var key   = temp.Substring(0, index).Escape();
                    var value = temp.Substring(index);

                    if (value.StartsWith("="))
                    {
                        value = value.Remove(0, 1);
                    }

                    if (string.IsNullOrWhiteSpace(value))
                    {
                        continue;
                    }

                    value         = value.Escape();
                    settings[key] = value.Escape();
                }
            }

            settings.Name  = TenantName;
            settings.State = State;
            SettingsManager.SaveSettings(settings);

            context.WriteLine("{0}租户 '{1}' 成功。", isAdd ? "添加" : "修改", TenantName);
        }
示例#3
0
        /// <summary>
        /// 执行命令。
        /// </summary>
        /// <param name="context">命令执行上下文。</param>
        public override void Execute(CommandExecuteContext context)
        {
            var command = _commandService.GetCommand(FindName);

            context.Write(Environment.NewLine);
            if (command == null)
            {
                context.WriteLine("找不到名称为 \"{0}\",的命令。", FindName);
            }
            else
            {
                context.WriteLine("下面是命令 '{0}' 的帮助信息。", FindName);
                context.WriteLine(command.GetUsage());
            }
        }
示例#4
0
        /// <summary>
        /// 执行命令。
        /// </summary>
        /// <param name="context">命令执行上下文。</param>
        public override void Execute(CommandExecuteContext context)
        {
            var command = _commandService.GetCommand(FindName);

            context.Write(Environment.NewLine);
            if (command == null)
            {
                context.WriteLine("找不到名称为 \"{0}\",的命令。", FindName);
            }
            else
            {
                context.WriteLine("下面是命令 '{0}' 的帮助信息。", FindName);
                context.WriteLine(command.GetUsage());
            }
        }
示例#5
0
        /// <summary>
        /// 执行命令。
        /// </summary>
        /// <param name="context">命令执行上下文。</param>
        public override void Execute(CommandExecuteContext context)
        {
            var setting = SettingsManager.LoadSettings()
                          .FirstOrDefault(i => TenantName.Equals(i.Name, StringComparison.OrdinalIgnoreCase));

            if (setting == null)
            {
                context.WriteLine("找不到任何可用的租户信息。");
            }

            GetTenantsCommand.WriteSetting(new[] { setting }, context);
        }
示例#6
0
        /// <summary>
        /// 执行命令。
        /// </summary>
        /// <param name="context">命令执行上下文。</param>
        public override void Execute(CommandExecuteContext context)
        {
            var settings = ShellSettingsManager.LoadSettings()
                .FirstOrDefault(i => i.Name.Equals(TenantName, StringComparison.OrdinalIgnoreCase));

            if (settings == null)
            {
                context.WriteLine("找名称为 '{0}' 的租户信息。", TenantName);
                return;
            }
            if (Domains == null)
                Domains = new List<string>();
            Domains = Domains.Where(i => !string.IsNullOrWhiteSpace(i)).Select(i => i.Trim()).ToList();

            var host = settings["RequestUrlHost"];
            string[] hosts = null;
            var msg = string.Empty;
            context.Is(() =>
            {
                msg = "添加";
                var list = string.IsNullOrWhiteSpace(host)
                    ? new string[0]
                    : host.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToArray();
                var domains = Domains.Where(i => !list.Any(d => i.Equals(d, StringComparison.OrdinalIgnoreCase)));
                hosts = list.Concat(domains).ToArray();
            }, "Add-SiteDomain");

            context.Is(() =>
            {
                msg = "设置";
                hosts = Domains.ToArray();
            }, "Set-SiteDomain");

            context.Is(() =>
            {
                msg = "删除";
                var list = string.IsNullOrWhiteSpace(host)
                    ? new string[0]
                    : host.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToArray();
                hosts = list.Where(i => !Domains.Any(d => i.Equals(d, StringComparison.OrdinalIgnoreCase))).ToArray();
            }, "Remove-SiteDomain", "Delete-SiteDomain");

            if (hosts == null)
                return;

            settings["RequestUrlHost"] = string.Join(",", hosts);
            ShellSettingsManager.SaveSettings(settings);

            context.WriteLine(msg + "成功。");
        }
示例#7
0
        /// <summary>
        /// 执行命令。
        /// </summary>
        /// <param name="context">命令执行上下文。</param>
        public override void Execute(CommandExecuteContext context)
        {
            var setting = SettingsManager.LoadSettings()
                          .FirstOrDefault(i => i.Name.Equals(TenantName, StringComparison.OrdinalIgnoreCase));

            if (setting == null)
            {
                context.WriteLine("找不到名称为 '{0}' 的租户。", TenantName);
                return;
            }
            if (!Quiet)
            {
                context.WriteLine("确定要删除租户 '{0}' 吗?\t输入'Y'继续执行,输入其他则终止执行。", setting.Name);
                var t = context.Read("y");
                if (!t.Equals("y", StringComparison.OrdinalIgnoreCase))
                {
                    return;
                }
            }

            SettingsManager.DeleteSettings(TenantName);
            context.WriteLine("成功删除租户 '{0}'。", TenantName);
        }
示例#8
0
        /// <summary>
        /// 执行命令。
        /// </summary>
        /// <param name="context">命令执行上下文。</param>
        public override void Execute(CommandExecuteContext context)
        {
            var settings = SettingsManager.LoadSettings().FirstOrDefault(i => string.Equals(i.Name, TenantName, StringComparison.OrdinalIgnoreCase));
            var isAdd = settings == null;
            if (settings != null && !Quiet)
            {
                context.WriteLine("已经存在名称为 '{0}' 的租户,确定要替换吗?\t输入'Y'继续执行,输入其他则终止执行。", TenantName);
                var t = context.Read("y");
                if (!t.Equals("y", StringComparison.OrdinalIgnoreCase))
                    return;
            }
            else
                settings = new ShellSettings();

            if (List != null)
            {
                foreach (var temp in List.Where(i => !string.IsNullOrWhiteSpace(i)))
                {
                    var index = temp.IndexOf("=", StringComparison.Ordinal);
                    if (index == -1)
                        continue;

                    var key = temp.Substring(0, index).Escape();
                    var value = temp.Substring(index);

                    if (value.StartsWith("="))
                        value = value.Remove(0, 1);

                    if (string.IsNullOrWhiteSpace(value))
                        continue;

                    value = value.Escape();
                    settings[key] = value.Escape();
                }
            }

            settings.Name = TenantName;
            settings.State = State;
            SettingsManager.SaveSettings(settings);

            context.WriteLine("{0}租户 '{1}' 成功。", isAdd ? "添加" : "修改", TenantName);
        }
示例#9
0
        /// <summary>
        ///     执行命令。
        /// </summary>
        /// <param name="context">命令执行上下文。</param>
        public override void Execute(CommandExecuteContext context)
        {
            var commands = _commandService.GetCommands();

            //命令信息
            if (commands == null)
                return;

            var help = CommandHelper.GetHelpText();
            foreach (var text in commands
                .Select(i =>
                {
                    var usage = i.GetUsage();
                    return string.IsNullOrWhiteSpace(usage) ? i.CommandName : usage;
                }))
            {
                help.AddPreOptionsLine(text);
            }

            context.WriteLine(help);
        }
示例#10
0
        /// <summary>
        ///     执行命令。
        /// </summary>
        /// <param name="context">命令执行上下文。</param>
        public override void Execute(CommandExecuteContext context)
        {
            var commands = _commandService.GetCommands();

            //命令信息
            if (commands == null)
            {
                return;
            }

            var help = CommandHelper.GetHelpText();

            foreach (var text in commands
                     .Select(i =>
            {
                var usage = i.GetUsage();
                return(string.IsNullOrWhiteSpace(usage) ? i.CommandName : usage);
            }))
            {
                help.AddPreOptionsLine(text);
            }

            context.WriteLine(help);
        }
示例#11
0
        /// <summary>
        /// 执行命令。
        /// </summary>
        /// <param name="context">命令执行上下文。</param>
        public override void Execute(CommandExecuteContext context)
        {
            var setting = SettingsManager.LoadSettings()
                .FirstOrDefault(i => i.Name.Equals(TenantName, StringComparison.OrdinalIgnoreCase));
            if (setting == null)
            {
                context.WriteLine("找不到名称为 '{0}' 的租户。", TenantName);
                return;
            }
            if (!Quiet)
            {
                context.WriteLine("确定要删除租户 '{0}' 吗?\t输入'Y'继续执行,输入其他则终止执行。", setting.Name);
                var t = context.Read("y");
                if (!t.Equals("y", StringComparison.OrdinalIgnoreCase))
                    return;
            }

            SettingsManager.DeleteSettings(TenantName);
            context.WriteLine("成功删除租户 '{0}'。", TenantName);
        }
示例#12
0
        /// <summary>
        /// 执行命令。
        /// </summary>
        /// <param name="context">命令执行上下文。</param>
        public override void Execute(CommandExecuteContext context)
        {
            var setting = SettingsManager.LoadSettings()
                .FirstOrDefault(i => TenantName.Equals(i.Name, StringComparison.OrdinalIgnoreCase));
            if (setting == null)
                context.WriteLine("找不到任何可用的租户信息。");

            GetTenantsCommand.WriteSetting(new[] { setting }, context);
        }