/// <summary>
        /// 添加节点或更新节点
        /// </summary>
        /// <param name="directoryName">目录名称</param>
        /// <param name="url">API地址</param>
        /// <param name="ip">IP地址</param>
        /// <param name="description">描述</param>
        /// <param name="weight">权重</param>
        /// <param name="status">状态</param>
        /// <param name="directoryId">所属目录</param>
        public string Add(string directoryName, string url, string ip, string description, int weight, int status,string[] apiList)
        {
            var directory = Model.RepositoryRegistry.Directory.FindBy(directoryName);
            if (directory == null)
            {
                return "目录不存在";
            }
            var directoryInfo = new Model.DirectoryInfo(directory.Id, directory.Name);

            var node = new Model.Node(directoryInfo);
            node.Description = description;
            node.Ip = ip;
            node.Url = url;
            node.Weight = weight;
            node.Status = (Model.NodeStatus)status;
            if (node.Validate())
            {
                Model.RepositoryRegistry.Node.Add(node);

                var nodes = Model.RepositoryRegistry.Node.Select(directory.Id);
                this.PublishEvent("Add", new NodeDomainEvent(nodes.Select(m => m.Convert()).ToList()));
            }
            this.PublishEvent("Add", new UpdateApiDomainEvent(directory.Id, apiList));
            if (node.GetBrokenRules().Count > 0)
            {
                return node.GetBrokenRules()[0].Description;
            }
            return string.Empty;
        }
        /// <summary>
        /// 添加节点或更新节点
        /// </summary>
        /// <param name="directoryName">目录名称</param>
        /// <param name="url">API地址</param>
        /// <param name="ip">IP地址</param>
        /// <param name="description">描述</param>
        /// <param name="weight">权重</param>
        /// <param name="status">状态</param>
        /// <param name="directoryId">所属目录</param>
        public string Add(string directoryName, string url, string ip, string description, int weight, int status, string[] apiList)
        {
            var directory = Model.RepositoryRegistry.Directory.FindBy(directoryName);

            if (directory == null)
            {
                return("目录不存在");
            }
            var directoryInfo = new Model.DirectoryInfo(directory.Id, directory.Name);

            var node = new Model.Node(directoryInfo);

            node.Description = description;
            node.Ip          = ip;
            node.Url         = url;
            node.Weight      = weight;
            node.Status      = (Model.NodeStatus)status;
            if (node.Validate())
            {
                Model.RepositoryRegistry.Node.Add(node);

                var nodes = Model.RepositoryRegistry.Node.Select(directory.Id);
                this.PublishEvent("Add", new NodeDomainEvent(nodes.Select(m => m.Convert()).ToList()));
            }
            this.PublishEvent("Add", new UpdateApiDomainEvent(directory.Id, apiList));
            if (node.GetBrokenRules().Count > 0)
            {
                return(node.GetBrokenRules()[0].Description);
            }
            return(string.Empty);
        }
Пример #3
0
        public void test_add()
        {
            Model.DirectoryInfo d = new Model.DirectoryInfo(111, "bbb");
            Model.Node n = new Model.Node(d);

            Model.RepositoryRegistry.Node.Add(n);

            var actual = Model.RepositoryRegistry.Node.FindBy(n.Id);

            NodeAssert(n, actual);
        }
Пример #4
0
        public void test_add()
        {
            Model.DirectoryInfo d = new Model.DirectoryInfo(111, "bbb");
            Model.Node          n = new Model.Node(d);

            Model.RepositoryRegistry.Node.Add(n);

            var actual = Model.RepositoryRegistry.Node.FindBy(n.Id);

            NodeAssert(n, actual);
        }
Пример #5
0
        public void FindByIdsTest()
        {
            Model.DirectoryInfo d = new Model.DirectoryInfo(111, "bbb");
            Model.Node n = new Model.Node(d);
            Model.Node n2 = new Model.Node(d);

            Model.RepositoryRegistry.Node.Add(n);
            Model.RepositoryRegistry.Node.Add(n2);

            var list = Model.RepositoryRegistry.Node.FindByIds(new int[2] { n.Id, n2.Id });

            Assert.IsTrue(list.Count() > 0);
        }
Пример #6
0
        public void FindByIdsTest()
        {
            Model.DirectoryInfo d  = new Model.DirectoryInfo(111, "bbb");
            Model.Node          n  = new Model.Node(d);
            Model.Node          n2 = new Model.Node(d);

            Model.RepositoryRegistry.Node.Add(n);
            Model.RepositoryRegistry.Node.Add(n2);

            var list = Model.RepositoryRegistry.Node.FindByIds(new int[2] {
                n.Id, n2.Id
            });

            Assert.IsTrue(list.Count() > 0);
        }
Пример #7
0
        public void test_update()
        {
            Model.DirectoryInfo d = new Model.DirectoryInfo(111, "bbb");
            Model.Node n = new Model.Node(d);

            Model.RepositoryRegistry.Node.Add(n);

            n.Ip = "111";
            n.Url = "url";

            Model.RepositoryRegistry.Node.Update(n);

            var actual = Model.RepositoryRegistry.Node.FindBy(n.Id);

            NodeAssert(n, actual);
        }
Пример #8
0
        public void test_update()
        {
            Model.DirectoryInfo d = new Model.DirectoryInfo(111, "bbb");
            Model.Node          n = new Model.Node(d);

            Model.RepositoryRegistry.Node.Add(n);

            n.Ip  = "111";
            n.Url = "url";

            Model.RepositoryRegistry.Node.Update(n);

            var actual = Model.RepositoryRegistry.Node.FindBy(n.Id);

            NodeAssert(n, actual);
        }
 private Model.Node SelectConvert(Model.Node n, Model.DirectoryInfo dir)
 {
     propertyHelper.SetValue(m => m.DirectoryInfo, n, dir);
     return(n);
 }