public CommunicationObject AddNotify(string xml) { try { CommunicationObject notifyInfo = XmlAnalyzer.AnalyseXmlToCommunicationObject <CommunicationObject>(xml); NoticeEntity noticeEntity = new NoticeEntity(); noticeEntity.NoticeId = notifyInfo.Id; noticeEntity.NoticeVersion = notifyInfo.Version; noticeEntity.MessengerId = notifyInfo.MessengerId; noticeEntity.Timestamp = notifyInfo.Timestamp; noticeEntity.TranType = (int)notifyInfo.TransactionType; noticeEntity.Digest = notifyInfo.Digest; noticeEntity.ResponseText = xml; noticeEntity.NotifyTime = DateTime.Now; noticeEntity.XmlHeader = notifyInfo.XmlHeader; NoticeManager noticeManager = new NoticeManager(DbAccess); noticeManager.AddNotice(noticeEntity); return(notifyInfo); } catch (Exception ex) { string errMsg = "添加通知XML到数据库失败!" + xml; throw HandleException(LogCategory.Notice, errMsg, ex); } }
public CommunicationObject HandleNotice(string response) { try { Dictionary <string, string> parameters = XmlAnalyzer.GetParameters(response); CommunicationObject notice = AddNotify(parameters["transMessage"]); TranType type = (TranType)Enum.Parse(typeof(TranType), parameters["transType"]); switch (type) { case TranType.Request101: // 奖期通知请求 AddIssuseNotify(parameters["transMessage"]); break; case TranType.Request108: // 返奖通知请求 // 添加返奖通知 BonusNoticeInfo bonusNotice = AddBonusNotify(parameters["transMessage"]); // 派奖 string gameName = bonusNotice._Body._BonusInfo._Issue.GameName; string issueNumber = bonusNotice._Body._BonusInfo._Issue.Number; DistributeBonus(gameName, issueNumber); break; default: throw new ArgumentOutOfRangeException("不支持的通知类型 - " + type); } return(notice); } catch (Exception ex) { string errMsg = "处理通知失败!" + response; throw HandleException(LogCategory.Notice, errMsg, ex); } }
public IssueNoticeInfo AddIssuseNotify(string xml) { IssueNoticeInfo info = XmlAnalyzer.AnalyseXmlToCommunicationObject <IssueNoticeInfo>(xml); try { IssueEntity issueEntity = new IssueEntity(); issueEntity.GameName = info.GameName; issueEntity.IssuseNumber = info.Number; issueEntity.StartTime = info.StartTime; issueEntity.StopTime = info.StopTime; issueEntity.Status = (int)info.Status; issueEntity.BonusCode = info.BonusCode; issueEntity.SalesMoney = info.SalesMoney; issueEntity.BonusMoney = info.BonusMoney; issueEntity.NoticeId = info.Id; IssuseManager issuseManager = new IssuseManager(DbAccess); issuseManager.SaveIssue(issueEntity); if (info.Status == IssueStatus.Started) { TicketFacade ticketFacade = new TicketFacade(); ticketFacade.AutoBuyChaseTicket(issueEntity.GameName, issueEntity.IssuseNumber); } //Thread thread = new Thread(AutoChaseTicket); //thread.Start(issueEntity); return(info); } catch (Exception ex) { string errMsg = "添加奖期通知失败!" + xml; throw HandleException(LogCategory.Notice, errMsg, ex); } }
protected virtual void AnnotateFile(BoundSourceFileBuilder binder) { var text = binder.SourceFile.Content; if (XmlAnalyzer.IsXml(text)) { XmlAnalyzer.Analyze(binder); } }
public void XmlCompareConstrainsEqualsWithDifferentOrder() { var expected = XmlSamples.GetContent("elements"); var actual = XmlSamples.GetContent("elements-with-different-order"); Assert.That( expected, IsXml.Equals(actual).UseAnalizer(XmlAnalyzer.Custom().SetEqual(XmlComparisonType.NodeListSequence))); }
public void XmlCompareConstrainWithXsdReference() { var actual = XmlSamples.GetContent("with-xsd-reference"); var expected = XmlSamples.GetContent("with-xsd-another-reference"); Assert.That( expected, IsXml.Equals(actual) .UseAnalizer(XmlAnalyzer.Custom().SetEqual(XmlComparisonType.SchemaLocation))); }
public HPResponseInfo DoBuy(UserInfo user, string gameName, string issueNumber , BuyType buyType, List <string> anteCodes, decimal money, int multiple) { try { HPBuyRequestInfo requestInfo = new HPBuyRequestInfo(); string messengerId = GetAgenceAccountUserName(); string userPassword = GetAgenceAccountPassword(); string messageId = messengerId + DateTime.Now.ToString("yyyyMMdd") + PostManager.EightSerialNumber; string timestamp = DateTime.Now.ToString("yyyyMMddHHmmss"); IssueMappingInfo issueInfo = new IssueMappingInfo(); issueInfo.GameName = gameName; issueInfo.Number = issueNumber; TicketMappingInfo ticket = new TicketMappingInfo(); ticket.TicketId = messengerId + DateTime.Now.ToString("yyyyMMdd") + PostManager.EightSerialNumber; ticket.BuyType = buyType; ticket.Money = money; ticket.Amount = multiple; ticket.AnteCodes = anteCodes; ticket.IssueInfo = issueInfo; ticket.UserProfile = GetAgencyUserProfileInfo(); HPBuyRequestInfo.Body requestBody = new HPBuyRequestInfo.Body(); requestBody._Request = new HPBuyRequestInfo.Body.Request(); requestBody._Request.TicketList = new XmlMappingList <TicketMappingInfo>(); requestBody._Request.TicketList.Add(ticket); string bodyXml = requestBody.ToXmlString("body"); CommunicationObject.RequestHeaderObject requestHeader = new CommunicationObject.RequestHeaderObject(); requestHeader.MessengerId = GetAgenceAccountUserName(); requestHeader.Timestamp = timestamp; requestHeader.TransactionType = TranType.Request103; requestHeader.Digest = PostManager.MD5(messageId + timestamp + userPassword + bodyXml, "gb2312"); string headerXml = requestHeader.ToXmlString("header"); string requestXml = "<?xml version=\"1.0\" encoding=\"GBK\"?><message version=\"1.0\" id=\"" + messageId + "\">" + headerXml + bodyXml + "</message>"; string requestText = "transType=" + (int)TranType.Request103 + "&transMessage=" + requestXml; BuyTicket(ticket, user); string xml = PostManager.Post(GateWayManager.HPIssueQuery_GateWay, requestText, 1200); HPResponseInfo info = XmlAnalyzer.AnalyseResponse <HPResponseInfo>(xml); UpdateTicketStatus(ticket, user, info); return(info); } catch (Exception ex) { throw HandleException(LogCategory.Ticket, "认购失败!", ex); } }
public void XmlCompareConstrainCustomAnalyzerIgnoreNodeMissing() { var expected = XmlSamples.GetContent("elements"); var actual = XmlSamples.GetContent("elements-with-comment"); Assert.That( expected, IsXml.Equals(actual) .WithIgnoreComment(false) .UseAnalizer(XmlAnalyzer.Custom() .SetEqual(XmlComparisonType.NodeList) .SetEqual(XmlComparisonType.NodeListLookup))); }
public void CompareElementsWithDifferentOrderAndStopAnalyzerIsDifferentTests() { var comparer = new XmlComparer { Analyzer = XmlAnalyzer.Constant(XmlComparisonState.Different) }; var comparison = CompareItems(comparer, "elements", "elements-with-different-order"); AssertComparison( comparison, XmlComparisonState.Different, new XmlComparisonType[] { XmlComparisonType.NodeListSequence, XmlComparisonType.NodeListSequence }); }
public BonusNoticeInfo AddBonusNotify(string xml) { BonusNoticeInfo info = XmlAnalyzer.AnalyseXmlToCommunicationObject <BonusNoticeInfo>(xml); try { BonusEntity bonusEntity = new BonusEntity(); bonusEntity.GameName = info._Body._BonusInfo._Issue.GameName; bonusEntity.IssuseNumber = info._Body._BonusInfo._Issue.Number; bonusEntity.BonusNumber = info._Body._BonusInfo.BonusNumber; bonusEntity.TotalItems = info._Body._BonusInfo.TotalItems; bonusEntity.TotalMoney = info._Body._BonusInfo.TotalMoney; bonusEntity.NoticeId = info.Id; bonusEntity.IsDistributed = false; using (ILHDBTran tran = BeginTran()) { BonusManager bonusManager = new BonusManager(tran); bonusManager.AddBonus(bonusEntity); List <BonusDetailEntity> bonusDetailList = new List <BonusDetailEntity>(); foreach (BonusMappingInfo.BonusItem bonusItem in info._Body._BonusInfo._BonusItemList) { BonusDetailEntity detail = new BonusDetailEntity(); detail.TicketId = bonusItem.TicketId; detail.BonusLevel = bonusItem.BonusLevel; detail.PlayType = (int)bonusItem.PlayType; detail.Money = bonusItem.Money; detail.IsBombBonus = bonusItem.IsBombBonus; detail.Size = bonusItem.Size; detail.GameName = bonusEntity.GameName; detail.IssuseNumber = bonusEntity.IssuseNumber; bonusManager.AddBonusDetail(detail); } tran.Commit(); } return(info); } catch (Exception ex) { string errMsg = "添加返奖通知失败!" + xml; throw HandleException(LogCategory.Notice, errMsg, ex); } }
protected override void AnnotateFile(AnalysisServices services, RepoFile file, BoundSourceFileBuilder binder) { var document = XmlAnalyzer.Analyze(binder); AnnotateFile(services, file, (XmlSourceFileBuilder)binder, document); }
protected override void AnnotateFile(BoundSourceFileBuilder binder) { XmlAnalyzer.Analyze(binder); }
private void DoBuy() { string issueIdString = HidIsuseID.Value; string isuseNumber = HidIsuseNumber.Value; string endTime = HidIsuseEndTime.Value; string playTypeString = Shove._Web.Utility.GetRequest("playType"); string lotteryNumber = Shove._Web.Utility.FilteSqlInfusion(base.Request["tb_LotteryNumber"]); string sumMoneyString = Shove._Web.Utility.GetRequest("tb_hide_SumMoney"); string sumNumberString = Shove._Web.Utility.GetRequest("tb_hide_SumNum"); string lotteryIdString = Shove._Web.Utility.GetRequest("HidLotteryID"); string multipleString = Shove._Web.Utility.GetRequest("tb_Multiple"); if (multipleString == "") { multipleString = "1"; } StringBuilder sb = new StringBuilder(); try { HPBuyRequestInfo requestInfo = new HPBuyRequestInfo(); decimal money = decimal.Parse(sumMoneyString); int multiple = int.Parse(multipleString); int sumNumber = int.Parse(sumNumberString); int playType = int.Parse(playTypeString); int lotteryId = int.Parse(lotteryIdString); long isuseId = long.Parse(issueIdString); string messengerId = GetAgenceAccountUserName(); string userPassword = GetAgenceAccountPassword(); string messageId = messengerId + DateTime.Now.ToString("yyyyMMdd") + PostManager.EightSerialNumber; string timestamp = DateTime.Now.ToString("yyyyMMddHHmmss"); IssueMappingInfo issueInfo = new IssueMappingInfo(); issueInfo.GameName = LotteryCode; issueInfo.Number = isuseNumber; List <string> anteCodes = new List <string>(); lotteryNumber = lotteryNumber.Replace(" + ", "#").Replace(' ', ','); anteCodes.AddRange(lotteryNumber.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries)); TicketMappingInfo ticket = new TicketMappingInfo(); ticket.TicketId = messengerId + DateTime.Now.ToString("yyyyMMdd") + PostManager.EightSerialNumber; ticket.BuyType = BuyType.A101; // TODO ticket.Money = money; ticket.Amount = multiple; ticket.AnteCodes = anteCodes; ticket.IssueInfo = issueInfo; //ticket.UserProfile = GetAgencyUserProfileInfo(); HPBuyRequestInfo.Body requestBody = new HPBuyRequestInfo.Body(); requestBody._Request = new HPBuyRequestInfo.Body.Request(); requestBody._Request.TicketList = new XmlMappingList <TicketMappingInfo>(); requestBody._Request.TicketList.Add(ticket); string bodyXml = requestBody.ToXmlString("body"); CommunicationObject.RequestHeaderObject requestHeader = new CommunicationObject.RequestHeaderObject(); requestHeader.MessengerId = GetAgenceAccountUserName(); requestHeader.Timestamp = timestamp; requestHeader.TransactionType = TranType.Request103; requestHeader.Digest = PostManager.MD5(messageId + timestamp + userPassword + bodyXml, "gb2312"); string headerXml = requestHeader.ToXmlString("header"); string requestXml = "<?xml version=\"1.0\" encoding=\"GBK\"?><message version=\"1.0\" id=\"" + messageId + "\">" + headerXml + bodyXml + "</message>"; string result = @"投注结果\n\n"; try { string requestText = "transType=" + (int)TranType.Request103 + "&transMessage=" + requestXml; string xml = PostManager.Post(GateWayManager.HPIssueQuery_GateWay, requestText, 1200); //string xml = gateway.LotteryRequest(accountN, transType, tickets); HPResponseInfo info = XmlAnalyzer.AnalyseResponse <HPResponseInfo>(xml); result += info.Code + " - " + info.Message; } catch (Exception ex) { result += "错误 - " + ex.Message; LogWriter.Write(LogCategory.Lottery, "投注错误", ex); } JavaScript.Alert(this.Page, result); return; } catch { JavaScript.Alert(this.Page, "输入有错误,请仔细检查。"); return; } }