Exemple #1
0
        /// <summary>
        /// 删除记录
        /// </summary>
        /// <param name="recordId"></param>
        /// <returns></returns>
        public bool DeleteRecord(int recordId)
        {
            DomainRecord record = this.WriteDB.ReadInfo <DomainRecord>(t => t.ID == recordId);

            if (record == null)
            {
                return(this.FaildMessage("记录不存在"));
            }
            SiteDomain domain = this.ReadDB.ReadInfo <SiteDomain>(t => t.ID == record.DomainID);

            List <DomainCDN> cdnlist = this.ReadDB.ReadList <DomainCDN>(t => t.RecordID == record.ID);

            // 调用CDN接口,删除CDN记录
            foreach (DomainCDN cdn in cdnlist)
            {
                if (cdn.CDNType != CDNProviderType.Manual)
                {
                    CDNProvider provider = ProviderAgent.Instance().GetCDNProviderInfo(cdn.CDNType);
                    if (provider != null || provider.Setting != null)
                    {
                        if (!provider.Setting.Delete(cdn.CName, out string msg))
                        {
                            return(this.FaildMessage(msg));
                        }
                    }
                }
                this.WriteDB.Delete <DomainCDN>(t => t.ID == cdn.ID && t.RecordID == recordId);
            }

            // 此处调用DNSPOD接口,删除别名记录
            // do something
            this.WriteDB.Delete <DomainRecord>(t => t.ID == recordId);

            return(this.AccountInfo.Log(LogType.Site, $"删除商户{domain.SiteID}域名记录{record.SubName}.{domain.Domain}"));
        }
        public Task SaveCDNInfo([FromForm] CDNProviderType type, [FromForm] int?isOpen, [FromForm] string setting)
        {
            CDNProvider provider = new CDNProvider()
            {
                Type          = type,
                SettingString = setting,
                IsOpen        = isOpen == null ? false : isOpen == 1
            };

            return(this.GetResult(ProviderAgent.Instance().SaveCDNProvider(provider)));
        }
        public Task GetCDNSetting([FromForm] CDNProviderType type)
        {
            CDNProvider  provider = ProviderAgent.Instance().GetCDNProviderInfo(type);
            ICDNProvider cdn      = provider?.Setting;

            if (cdn == null)
            {
                return(this.GetResult(true));
            }
            else
            {
                return(this.GetResult(cdn.ToSetting()));
            }
        }
Exemple #4
0
 /// <summary>
 /// 添加/修改CDN供应商
 /// </summary>
 /// <param name="cdn"></param>
 /// <returns></returns>
 public bool SaveCDNProvider(CDNProvider cdn)
 {
     using (DbExecutor db = NewExecutor(IsolationLevel.ReadUncommitted))
     {
         if (cdn.Exists(db))
         {
             cdn.Update(db);
         }
         else
         {
             cdn.Add(db);
         }
         db.Commit();
     }
     return(this.AccountInfo.Log(LogType.Set, $"保存CDN供应商:{cdn.Type}"));
 }
        public Task CDNInfo([FromForm] CDNProviderType?type)
        {
            CDNProvider provider = type == null ? new CDNProvider()
            {
                Type = CDNProviderType.Manual,
            } : (ProviderAgent.Instance().GetCDNProviderInfo(type.Value) ?? new CDNProvider()
            {
                Type = type.Value
            });

            return(this.GetResult(new
            {
                provider.Type,
                provider.IsOpen
            }));
        }
Exemple #6
0
 static CDNManager()
 {
     _provider = Factory.CreateObject("cdn/provider", true) as CDNProvider;
 }