/// <summary> /// Maps the reservation ticket. /// </summary> /// <param name="source">The source.</param> /// <param name="destination">The destination.</param> protected virtual void MapReservationTicket([NotNull] DomainModel.Orders.Order source, [NotNull] Order destination) { Assert.IsNotNull(source, "source"); Assert.IsNotNull(destination, "destination"); Assert.IsNotNull(this.PaymentProviderFactory, "PaymentProviderFactory cannot be null."); Assert.IsNotNull(source.PaymentSystem, "source.PaymentSystem cannot be null."); Assert.IsNotNull(source.PaymentSystem.Code, "source.PaymentSystem.Code cannot be null"); bool isReserved = this.PaymentProviderFactory.GetProvider(source.PaymentSystem.Code) is IReservable; if (isReserved) { DomainModel.Payments.ReservationTicket oldReservationTicket = new DomainModel.Payments.ReservationTicket(source); bool wasAlreadyCaptured = source.Status is Captured; destination.ReservationTicket = new Ecommerce.OrderManagement.Orders.ReservationTicket { Amount = oldReservationTicket.Amount, CapturedAmount = wasAlreadyCaptured ? oldReservationTicket.Amount : 0, AuthorizationCode = oldReservationTicket.AuthorizationCode, InvoiceNumber = oldReservationTicket.InvoiceNumber, TransactionNumber = oldReservationTicket.TransactionNumber }; } }
/// <summary> /// Maps the specified source. /// </summary> /// <param name="source">The source.</param> /// <param name="destination">The destination.</param> protected virtual void Map([NotNull] DomainModel.Payments.ReservationTicket source, [NotNull] Ecommerce.OrderManagement.Orders.ReservationTicket destination) { Assert.ArgumentNotNull(source, "source"); Assert.ArgumentNotNull(destination, "destination"); destination.Amount = source.Amount; destination.AuthorizationCode = source.AuthorizationCode; destination.InvoiceNumber = source.InvoiceNumber; destination.TransactionNumber = source.TransactionNumber; }