public MemberDomain CreateNewMemberDomain(string domainName, string orderItemId) { var memberDomain = new MemberDomain(); memberDomain.DomainName = domainName; memberDomain.AdminDomainContactId = DomainDefaults(domainName).AdminDomainContactId; memberDomain.BillingDomainContactId = DomainDefaults(domainName).BillingDomainContactId; memberDomain.OwnerDomainContactId = DomainDefaults(domainName).OwnerDomainContactId; memberDomain.TechDomainContactId = DomainDefaults(domainName).TechDomainContactId; memberDomain.RenewalMode = DomainDefaults(domainName).RenewalMode; memberDomain.TransferMode = DomainDefaults(domainName).TransferMode; memberDomain.PrivacyProtection = DomainDefaults(domainName).PrivacyProtection; memberDomain.NameServers = DomainDefaults(domainName).NameServers; memberDomain.AuthInfo = Utility.CreatePassword(6).ToLowerInvariant() + "!1Fbs"; memberDomain.Save(); MemberProduct memberProduct = new MemberProduct(); memberProduct.OrderItemId = orderItemId; memberProduct.Id = memberDomain.Id; memberProduct.InsertDate = Provider.Database.Now; memberProduct.MemberId = this.Id; memberProduct.Name = domainName; Provider.Database.Insert("MemberProduct", memberProduct); return(memberDomain); }
public string GetOrderStatus(string orderReference) { OrderItem oi = Provider.Database.Read <OrderItem>("Id={0}", orderReference); if (oi == null) { throw new APIException("OrderItem not found. refNo: " + orderReference); } MemberProduct mp = Provider.Database.Read <MemberProduct>("OrderItemId = {0}", oi.Id); if (mp == null) { throw new APIException("Critical error: OrderItem exists but MemberProduct doesn't, for orderItem : " + oi.Id); } MemberDomain md = Provider.Database.Read <MemberDomain>("Id = {0}", mp.Id); if (md == null) { throw new APIException("Critical error: MemberProduct exists but MemberDomain doesn't, for memberProduct : " + mp.Id); } if (mp.MemberId != Provider.CurrentMember.Id) { throw new APIException("GetOrderStatus request can only be send by the domain owner"); } return(md.RegistryStatus); }
public bool UpdateDomainNameServers(ReqUpdateDomainNameServers req) { MemberDomain md = Provider.Database.Read <MemberDomain>("DomainName = {0}", req.DomainName); if (md == null) { throw new APIException("Domain name not found: " + req.DomainName); } MemberProduct mp = Provider.Database.Read <MemberProduct>("Id = {0}", md.Id); if (mp == null) { throw new APIException("Critical error: MemberDomain exists but MemberProduct doesn't, for domain : " + req.DomainName); } if (mp.MemberId != Provider.CurrentMember.Id) { throw new APIException("Creditentials not authorized for this domain: " + req.DomainName); } EppAPI eppApi = new EppAPI(); var res = eppApi.HostCheck(new DealerSafe.DTO.Epp.Request.ReqHostCheck { DomainName = req.DomainName, HostNames = req.NameServers }); foreach (var hostInfo in res.HostInfos) { if (hostInfo.Available) { var res2 = eppApi.HostCreate(new DealerSafe.DTO.Epp.Request.ReqHostCreate { DomainName = req.DomainName, HostName = hostInfo.HostName }); } } var res3 = eppApi.DomainUpdate(new DealerSafe.DTO.Epp.Request.ReqDomainUpdate { Rem = new Epp.Protocol.Domains.DomainAddRemType { NameServers = new Epp.Protocol.Domains.NameServerList(md.NameServers.SplitWithTrim(',').Select(ns => new NameServerInfo { HostName = ns })) }, Add = new Epp.Protocol.Domains.DomainAddRemType { NameServers = new Epp.Protocol.Domains.NameServerList(req.NameServers.Select(ns => new NameServerInfo { HostName = ns })) }, DomainName = req.DomainName }); return(true); }
private void btnCard_Click(object sender, System.EventArgs e) { try { UltraGridRow row = this.ultraGrid1.ActiveRow; if (null == row) { throw new BusinessException("删除未发卡会员", "请从查询结果中选择进行删除的会员资料"); } string strMemberCardNo = row.Cells["cnvcMemberCardNo"].Value.ToString(); DataTable dtMember = Helper.Query("select * from tbMember where cnvcState='" + ConstApp.Card_State_NoCard + "' and cnvcMemberCardNo ='" + strMemberCardNo + "'"); if (dtMember.Rows.Count != 1) { throw new BusinessException("删除未发卡会员", "未找到相应的未发卡会员资料"); } Member member = new Member(dtMember); member.cnvcMemberCardNo = strMemberCardNo; member.cnvcOperName = this.oper.cnvcOperName; member.cndOperDate = DateTime.Now; DataTable dtMemberProduct = Helper.Query("select * from tbMemberProduct where cnvcMemberCardNo = '" + strMemberCardNo + "'"); string strProduct = ""; foreach (DataRow drProduct in dtMemberProduct.Rows) { MemberProduct product = new MemberProduct(drProduct); strProduct += product.cnvcProductName + ",,,," + product.cnvcFree + ",|"; } DialogResult dr = MessageBox.Show(this, "【会员卡号】" + member.cnvcMemberCardNo + "\n【工商注册号】" + member.cnvcPaperNo + "\n【单位名称】" + member.cnvcMemberName, "信息确认", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (dr == DialogResult.Yes) { MemberManageFacade mm = new MemberManageFacade(); mm.NoCardDelete(member); MessageBox.Show(this, "删除成功!", "删除未发卡会员"); btnQuery_Click(null, null); } } catch (BusinessException bex) { MessageBox.Show(this, bex.Message, bex.Type, MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (System.Exception ex) { MessageBox.Show(this, ex.Message, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public bool CancelOrderAndRefund(string orderReference) { OrderItem oi = Provider.Database.Read <OrderItem>("Id={0}", orderReference); if (oi == null) { throw new APIException("OrderItem not found. refNo: " + orderReference); } MemberProduct mp = Provider.Database.Read <MemberProduct>("OrderItemId = {0}", oi.Id); if (mp == null) { throw new APIException("Critical error: OrderItem exists but MemberProduct doesn't, for orderItem : " + oi.Id); } if (mp.MemberId != Provider.CurrentMember.Id) { throw new APIException("Cancellation and refund request can only be send by the domain owner"); } MemberDomain md = Provider.Database.Read <MemberDomain>("Id = {0}", mp.Id); if (md == null) { throw new APIException("Critical error: MemberProduct exists but MemberDomain doesn't, for memberProduct : " + mp.Id); } if (mp.StartDate < Provider.Database.Now.AddDays(-5)) { throw new APIException("You can cancel your domain and refund in the first 5 days of your domain registration."); } var job = new Job { Command = JobCommands.DomainCancel, Executer = JobExecuters.Machine, RelatedEntityId = oi.Id, RelatedEntityName = "OrderItem", StartDate = Provider.Database.Now, State = JobStates.NotStarted }; job.Save(); return(true); }
public string SaveMemberDomain(MemberDomainInfo req) { MemberDomain md = new MemberDomain(); req.CopyPropertiesWithSameName(md); md.Id = req.DomainName.Trim(); Provider.Database.Insert("MemberDomain", md); MemberProduct mp = new MemberProduct(); req.CopyPropertiesWithSameName(mp); mp.Id = md.Id; Provider.Database.Insert("MemberProduct", mp); return md.Id; }
public override void CreateJobsFor(Order order) { foreach (var item in order.Items.Where(item => item.Product().ProductType().Name == "SSL")) { try { Provider.Database.Begin(); var job = new Job() { Command = JobCommands.SSLNewOrder, Name = item.DisplayName, RelatedEntityName = "OrderItem", RelatedEntityId = item.Id, State = JobStates.NotStarted, Executer = JobExecuters.Member, ExecuterId = order.MemberId }; job.Save(); var memberSSL = new MemberSSL(); //memberSSL.OrderItemId = item.Id; memberSSL.State = SSLStates.None; memberSSL.Save(); var now = Provider.Database.Now; var memberProduct = new MemberProduct(); memberProduct.Id = memberSSL.Id; memberProduct.OrderItemId = item.Id; memberProduct.StartDate = now; memberProduct.EndDate = now.AddYears(item.Amount); memberProduct.InsertDate = now; memberProduct.Name = item.DisplayName; Provider.Database.Insert("MemberProduct", memberProduct); Provider.Database.Commit(); } catch (Exception ex) { Provider.Database.Rollback(); throw; } } }
private JobStates domainCancel(Job job) { OrderItem oi = Provider.Database.Read <OrderItem>("Id={0}", job.RelatedEntityId); if (oi == null) { throw new APIException("OrderItem not found. refNo: " + job.RelatedEntityId); } MemberProduct mp = Provider.Database.Read <MemberProduct>("OrderItemId = {0}", oi.Id); if (mp == null) { throw new APIException("Critical error: OrderItem exists but MemberProduct doesn't, for orderItem : " + oi.Id); } MemberDomain md = Provider.Database.Read <MemberDomain>("Id = {0}", mp.Id); if (md == null) { throw new APIException("Critical error: MemberProduct exists but MemberDomain doesn't, for memberProduct : " + mp.Id); } if (mp.StartDate < Provider.Database.Now.AddDays(-5)) { throw new APIException("You can cancel your domain and refund in the first 5 days of your domain registration."); } var eppApi = new EppAPI(); eppApi.DomainDelete(new DealerSafe.DTO.Epp.Request.ReqDomainDelete { DomainName = md.DomainName }); md.Delete(); mp.Delete(); oi.Cancel(); return(JobStates.Done); }
public JsonResult AddNewOwn(string ids, string cid) { string[] idd = ids.Substring(0, ids.Length - 1).Split(','); foreach (string i in idd) { MemberProduct mp = new MemberProduct(); mp.EnterpriseCode = cid; mp.ProductCode = i; try { new MemberProductDao().Insert(mp); } catch (Exception e) { return Json("添加失败"); } } return Json("添加成功"); }
private void btnCard_Click(object sender, System.EventArgs e) { try { UltraGridRow row = this.ultraGrid1.ActiveRow; if (null == row) { throw new BusinessException("重新发卡", "请从查询结果中选择进行发卡的会员资料"); } if (txtMemberCardNo.Text.Trim().Length == 0) { throw new BusinessException("重新发卡", "请输入卡号"); } string strNewMemberCardNo = txtMemberCardNo.Text; //row.Cells["cnvcMemberCardNo"].Value.ToString(); // if (strNewMemberCardNo.StartsWith("A")||strNewMemberCardNo.StartsWith("B")) // { // throw new BusinessException("重新发卡","卡号必须为数字,现在卡号是:"+strNewMemberCardNo); // } // if (strNewMemberCardNo.Trim().Length < 8) // { // throw new BusinessException("重新发卡","卡号必须8位"); // } if (strNewMemberCardNo.Trim().Length < 8) { throw new BusinessException("重新发卡", "会员卡号必须是8位!"); } else { //string strMemberCardNo = txtMemberCardNo.Text.Trim(); if (strNewMemberCardNo.Equals("00000000")) { throw new BusinessException("重新发卡", "会员卡号不能都为零"); } else { //判断卡号是否存在 DataTable dtIsMember = Helper.Query("select * from tbMember where cnvcMemberCardNo = '" + strNewMemberCardNo + "'"); if (dtIsMember.Rows.Count > 0) { throw new BusinessException("重新发卡", "会员卡号已存在"); } } } string strMemberCardNo = row.Cells["cnvcOldMemberCardNo"].Value.ToString(); DataTable dtMember = Helper.Query("select * from tbMember where cnvcState='" + ConstApp.Card_State_NoCard + "' and cnvcMemberCardNo ='" + strMemberCardNo + "'"); if (dtMember.Rows.Count != 1) { throw new BusinessException("重新发卡", "未找到相应的会员资料"); } Member member = new Member(dtMember); //member.cnvcMemberCardNo = strNewMemberCardNo; member.cnvcProduct = strNewMemberCardNo; member.cnvcOperName = this.oper.cnvcOperName; member.cndOperDate = DateTime.Now; DataTable dtMemberProduct = Helper.Query("select * from tbMemberProduct where cnvcMemberCardNo = '" + strMemberCardNo + "'"); string strProduct = ""; foreach (DataRow drProduct in dtMemberProduct.Rows) { MemberProduct product = new MemberProduct(drProduct); strProduct += product.cnvcProductName + ",,,," + product.cnvcFree + ",|"; } DialogResult dr = MessageBox.Show(this, "【会员卡号】" + member.cnvcProduct + "\n【工商注册号】" + member.cnvcPaperNo + "\n【单位名称】" + member.cnvcMemberName, "信息确认", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (dr == DialogResult.Yes) { PrintedBill pBill = new PrintedBill(member.ToTable()); pBill.cnvcMemberCardNo = strNewMemberCardNo; pBill.cnvcBillType = ConstApp.Bill_Type_Provide; pBill.cnvcProduct = strProduct; MemberManageFacade mm = new MemberManageFacade(); mm.RenewCard(member, pBill); pBill.cnvcProduct = ""; Helper.PrintTicket(pBill); MessageBox.Show(this, "发卡成功!", "发卡"); this.txtMemberCardNo.Text = ""; this.txtPPaperNo.Text = ""; this.txtPMemberName.Text = ""; this.txtPrepay.Text = ""; } } catch (BusinessException bex) { MessageBox.Show(this, bex.Message, bex.Type, MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (System.Exception ex) { MessageBox.Show(this, ex.Message, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private JobStates domainRestore(Job job) { // according to https://tools.ietf.org/html/rfc3915 var orderItem = Provider.Database.Read <OrderItem>("Id={0}", job.RelatedEntityId); var member = orderItem.Order().Member(); var memberDomain = Provider.Database.Read <MemberDomain>("DomainName={0}", orderItem.DisplayName); if (memberDomain == null) { throw new Exception("MemberDomain record not found. If a domain name is not in our database, cannot be restored."); } var eppApi = new EppAPI(); var req = new ReqDomainInfo(); req.DomainName = memberDomain.DomainName; var res = eppApi.DomainInfo(req); // eğer domain state OK ise restore işlemi tamamlanmıştır if (res.Statuses.FirstOrDefault(s => s.Status == Epp.Protocol.Shared.Status.Ok) != null) { var memberProduct = Provider.Database.Read <MemberProduct>("Id={0}", memberDomain.Id); if (memberProduct == null) { //null olmaması gerekir ama bir hatadan dolayı null ise hemen create edelim. bi sakınca yok memberProduct = new MemberProduct { StartDate = res.CreationDate.Value, OrderItemId = job.RelatedEntityId, MemberId = member.Id, }; } memberProduct.EndDate = res.ExpirationDate.Value; memberProduct.Save(); memberDomain.RegistryStatus = res.Statuses.StringJoin(","); memberDomain.RGPStatus = res.ExtRgp == null ? statusValueType.NONE : res.ExtRgp.rgpStatus.FirstOrDefault().s; memberDomain.Save(); return(JobStates.Done); } // eğer domain state OK değilse, pendingDelete de değilse, restore'da ne işin var kardeşim? if (res.Statuses.FirstOrDefault(s => s.Status == Epp.Protocol.Shared.Status.PendingDelete) == null) { throw new Exception("A domain with no pendingDelete status cannot be restored."); } // eğer domain redemptionPeriod'da ise, restore request komutunu göndeririz if (res.ExtRgp.rgpStatus.FirstOrDefault(s => s.s == statusValueType.redemptionPeriod) != null) { var reqRestore = new ReqDomainUpdate { DomainName = memberDomain.DomainName, ExtRgp = new DealerSafe.DTO.Epp.Protocol.Rgp.updateType { restore = new DealerSafe.DTO.Epp.Protocol.Rgp.restoreType { op = DealerSafe.DTO.Epp.Protocol.Rgp.rgpOpType.request } } }; var resRestore = eppApi.DomainUpdate(reqRestore); job.StartDate = Provider.Database.Now.AddMinutes(10); return(JobStates.TryAgain); } // eğer domain pendingRestore'da ise, restore report komutunu göndeririz if (res.ExtRgp.rgpStatus.FirstOrDefault(s => s.s == statusValueType.pendingRestore) != null) { var reqReport = new ReqDomainUpdate { DomainName = memberDomain.DomainName, ExtRgp = new DealerSafe.DTO.Epp.Protocol.Rgp.updateType { restore = new DealerSafe.DTO.Epp.Protocol.Rgp.restoreType { op = DealerSafe.DTO.Epp.Protocol.Rgp.rgpOpType.report } } }; var resRestore = eppApi.DomainUpdate(reqReport); job.StartDate = Provider.Database.Now.AddMinutes(10); return(JobStates.TryAgain); } job.StartDate = Provider.Database.Now.AddMinutes(10); return(JobStates.TryAgain); }