예제 #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 = 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 + "成功。");
        }