예제 #1
0
        /// <summary>
        /// 删除域名解析
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public override DomainRecordActionResult DeleteDomainRecord(DeleteDomainRecordParam param)
        {
            if (!long.TryParse(param.RecordId, out long tcRecordId))
            {
                throw new Exception("RecordId is not tencent cloud recordid.");
            }
            var result = client.RecordDelete(new RecordDeleteRequestParam()
            {
                recordId = long.Parse(param.RecordId),
                domain   = param.DomainName
            }).GetAwaiter().GetResult();

            if (result.Code == "0")
            {
                return(new DomainRecordActionResult()
                {
                    RecordId = param.RecordId,
                    RR = "",
                    TotalCount = 1,
                });
            }
            else
            {
                throw new Exception($"Delete domain record info from tencent cloud failed. error id is {result.Code}, {result.Message}");
            }
        }
예제 #2
0
        public override DomainRecordActionResult DeleteSubDomainRecords(DeleteDomainRecordParam param)
        {
            var request = new DeleteSubDomainRecordsRequest()
            {
                DomainName = param.DomainName,
                RR         = param.RR
            };

            try
            {
                var response = client.GetAcsResponse(request);
                if (response == null || response.HttpResponse.Content == null || response.HttpResponse.Content.Length == 0)
                {
                    throw new Exception($"Delete subdomain record info failed. record domain is {param.RR}.{param.DomainName}");
                }
                string result    = Encoding.UTF8.GetString(response.HttpResponse.Content);
                var    resultObj = new JsonSerializer().Deserialize <DomainRecordActionResult>(new JsonTextReader(new StringReader(result)));
                if (resultObj != null)
                {
                    resultObj.Status = true;
                }
                return(resultObj);
            }
            catch (ServerException e)
            {
                throw new Exception($"Aliyun server error. {e.Message}");
            }
            catch (ClientException e)
            {
                throw new Exception($"Reuqest client error. errcode is {e.ErrorCode}, {e.Message}");
            }
        }
예제 #3
0
        /// <summary>
        /// 根据主解析记录删除相关的解析记录(可选实现)
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public override DomainRecordActionResult DeleteSubDomainRecords(DeleteDomainRecordParam param)
        {
            RecordListResult result = client.RecordList(new RecordListRequestParam()
            {
                domain = param.DomainName
            }).GetAwaiter().GetResult();

            if (result.Code != "0")
            {
                throw new Exception($"Get domain record info from tencent cloud failed. error id is {result.Code}, {result.Message}");
            }
            StringBuilder sb             = new StringBuilder();
            bool          isDeleteFailed = false;

            foreach (var item in result.Data.Records)
            {
                try
                {
                    if (item.name != param.RR)
                    {
                        continue;
                    }
                    var recordDeleteResult = client.RecordDelete(new RecordDeleteRequestParam()
                    {
                        domain   = param.DomainName,
                        recordId = item.id,
                    }).GetAwaiter().GetResult();
                    if (recordDeleteResult.Code != "0")
                    {
                        throw new Exception($"Delete record info from tencent cloud failed({recordDeleteResult.Code}). {recordDeleteResult.Message}");
                    }
                }
                catch (Exception ex)
                {
                    sb.AppendLine(ex.Message);
                    isDeleteFailed = true;
                }
            }
            if (isDeleteFailed)
            {
                throw new Exception(sb.ToString());
            }
            return(new DomainRecordActionResult()
            {
                Status = true,
                RR = param.RR,
            });
        }
예제 #4
0
 /// <summary>
 /// 根据主解析记录删除相关的解析记录(可选实现)
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public virtual DomainRecordActionResult DeleteSubDomainRecords(DeleteDomainRecordParam param)
 {
     throw new NotImplementedException();
 }
예제 #5
0
 /// <summary>
 /// 更具RecordID删除解析记录
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public abstract DomainRecordActionResult DeleteDomainRecord(DeleteDomainRecordParam param);