/// <summary> /// 添加编码信息 /// </summary> internal void AddPNRInfo(PNRInfo pnrInfo) { if (null == pnrInfo) { throw new ArgumentNullException("pnrInfo", "编码信息不能为空"); } if (_pnrInfos.Exists(item => PNRPair.Equals(item.Code, pnrInfo.Code))) { throw new RepeatedItemException("不能重复加入同一编码"); } _pnrInfos.Add(pnrInfo); }
/// <summary> /// 根据申请单修改订单内容 /// </summary> internal void Update(BaseApplyform applyform) { var originalPNRInfo = this.PNRInfos.FirstOrDefault(item => PNRPair.Equals(item.Code, applyform.OriginalPNR)); if (originalPNRInfo == null) { throw new CustomException("未找到原编码信息"); } PNRInfo newPnrInfo = null; if (applyform is RefundOrScrapApplyform) { newPnrInfo = originalPNRInfo.UpdateContentForRefund(applyform as RefundOrScrapApplyform); } else if (applyform is PostponeApplyform) { newPnrInfo = originalPNRInfo.UpdateContentForPostpone(applyform as PostponeApplyform); } if (newPnrInfo != null) { AddPNRInfo(newPnrInfo); } }
internal PNRInfo GetPNRInfo(PNRPair pnrCode) { return(_pnrInfos.FirstOrDefault(item => PNRPair.Equals(item.Code, pnrCode))); }
internal bool IsSamePNR(PNRPair pnr) { return(PNRPair.Equals(Code, pnr)); }
bool requireCancelReservation() { return((!(this.Order.Product is SpeicalProductInfo) || ((this.Order.Product as SpeicalProductInfo).SpeicalProductType == SpecialProductType.CostFree && !this.Order.IsCustomerResource)) && this.Order.Source == OrderSource.PlatformOrder && PNRPair.Equals(this.Order.ReservationPNR, this.OriginalPNR)); }