예제 #1
0
        /// <summary>
        /// 添加本地没有的资源
        /// </summary>
        /// <param name="host"></param>
        /// <param name="resources"></param>
        /// <returns></returns>
        public override bool AddResources(LyciumHost host, params string[] resources)
        {
            var insertList = new List <LyciumResource>();
            var res        = QueryAll(host.Id);

            if (res != null)
            {
                var hashSets = res.Select(item => item.Resource).ToImmutableHashSet();

                for (int i = 0; i < resources.Length; i++)
                {
                    if (!hashSets.Contains(resources[i]))
                    {
                        insertList.Add(new LyciumResource()
                        {
                            Cid = host.Id, Resource = resources[i]
                        });
                    }
                }
                return(_freesql.Insert(insertList).ExecuteAffrows() == insertList.Count);
            }
            else
            {
                for (int i = 0; i < resources.Length; i++)
                {
                    insertList.Add(new LyciumResource()
                    {
                        Cid = host.Id, Resource = resources[i]
                    });
                }
                return(_freesql.Insert(resources).ExecuteAffrows() == resources.Length);
            }
        }
예제 #2
0
        public override bool ModifyHost(LyciumHost host)
        {
            var repository = _freeSql.GetRepository <LyciumHost>();
            var result     = repository.Where(item => item.Id == host.Id).First();

            return(repository.Update(host) == 1);
        }
        public HttpClient GetClient(LyciumHost host)
        {
            var request = _factory.CreateClient(host.SecretKey);

            request.BaseAddress = new Uri(host.HostUrl);
            return(request);
        }
예제 #4
0
 public override bool AddHost(LyciumHost host)
 {
     return(_freeSql.Insert(host).ExecuteAffrows() == 1);
 }
예제 #5
0
 /// <summary>
 /// 增加一个主机
 /// </summary>
 /// <param name="host"></param>
 /// <returns></returns>
 public abstract bool AddHost(LyciumHost host);
예제 #6
0
 /// <summary>
 /// 更新一个主机
 /// </summary>
 /// <param name="lyciumHost"></param>
 /// <returns></returns>
 public abstract bool ModifyHost(LyciumHost lyciumHost);
 public override HttpStatusCode NotifyAllowlist(LyciumHost host, IEnumerable <string> resources)
 {
     return(_request.Post <IEnumerable <string>, HttpStatusCode>(host, "api/Resource/set/allowlist", resources).Result);
 }
 public abstract HttpStatusCode NotifyBlocklist(LyciumHost host, IEnumerable <string> resources);
 public abstract bool AddResources(LyciumHost host, params string[] resources);
 public HttpStatusCode Modify(LyciumHost host)
 {
     return(_hostService.ModifyHost(host) ? HttpStatusCode.OK : HttpStatusCode.BadRequest);
 }
 public string Create(LyciumHost host)
 {
     host.SecretKey = Guid.NewGuid().ToString();
     return(_hostService.AddHost(host) ? JsonResult(host) : null);
 }