Example #1
0
        /// <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;
        }
        /// <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
            };
              }
        }