void setFlights(RefundOrScrapApplyformView refundOrScrapApplyformView) { if (refundOrScrapApplyformView.Items != null) { var pnrInfo = this.Order.PNRInfos.First(item => item.IsSamePNR(refundOrScrapApplyformView.PNR)); foreach (var voyage in refundOrScrapApplyformView.Items) { if (voyage != null) { var originalFlight = pnrInfo.Flights.FirstOrDefault(item => item.Id == voyage); if (originalFlight == null) { throw new NotFoundException("原编码中不存在航段信息。"); } var refundFlight = new RefundFlight() { OriginalFlight = originalFlight }; this.AddFlight(refundFlight); } } } if (!this.Flights.Any()) { throw new CustomException("缺少航段信息"); } }
internal void AddFlight(RefundFlight flight) { if (flight == null) { throw new ArgumentNullException("flight"); } if (flight.OriginalFlight == null) { throw new ArgumentNullException("flight.OriginalFlight"); } if (_flights.Exists(item => item.OriginalFlight.Id == flight.OriginalFlight.Id || Flight.IsSameFlight(flight.OriginalFlight, item.OriginalFlight))) { throw new RepeatedItemException("不能重复添加相同航段"); } _flights.Add(flight); }