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 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); } }