public TicketSalesPage() { checkoutComponent = new CheckoutComponent(); paymentComponent = new PaymentComponent(); cardOperationComponent = new CardOperationComponent(); ticketQrCodeComponent = new TicketQrCodeComponent(); path = "/boxoffice/pos/ticket-sales"; }
private void Initialize() { paymentValidatorComponentMock = new Mock <IPaymentValidator>(); gatewayComponentMock = new Mock <IGatewayComponent>(); paymentRepositoryMock = new Mock <IPaymentRepository>(); paymentGatewayMock = new Mock <IPaymentGateway>(); paymentComponent = new PaymentComponent(BaseParameters, paymentValidatorComponentMock.Object, gatewayComponentMock.Object, paymentRepositoryMock.Object); }
/// <summary> /// Generates the sales activity. /// </summary> /// <param name="order">The order.</param> /// <param name="existingPayment">The existingPayment.</param> /// <param name="paymentToRefund">The payment to refund</param> /// <param name="refundTransactionId">The refund transaction identifier.</param> /// <param name="context">The context.</param> /// <returns> /// A <see cref="Task" /> /// </returns> protected virtual async Task GenerateSalesActivity(Order order, PaymentComponent existingPayment, PaymentComponent paymentToRefund, string refundTransactionId, CommercePipelineExecutionContext context) { var salesActivity = new SalesActivity { Id = $"{CommerceEntity.IdPrefix<SalesActivity>()}{Guid.NewGuid():N}", ActivityAmount = new Money(existingPayment.Amount.CurrencyCode, paymentToRefund.Amount.Amount * -1), Customer = new EntityReference { EntityTarget = order.EntityComponents.OfType <ContactComponent>().FirstOrDefault()?.CustomerId }, Order = new EntityReference { EntityTarget = order.Id, EntityTargetUniqueId = order.UniqueId }, Name = "Refund the Federated Payment", PaymentStatus = context.GetPolicy <KnownSalesActivityStatusesPolicy>().Completed }; salesActivity.SetComponent(new ListMembershipsComponent { Memberships = new List <string> { CommerceEntity.ListName <SalesActivity>(), context.GetPolicy <KnownOrderListsPolicy>().SalesCredits, string.Format(CultureInfo.InvariantCulture, context.GetPolicy <KnownOrderListsPolicy>().OrderSalesActivities, order.FriendlyId) } }); if (existingPayment.Amount.Amount != paymentToRefund.Amount.Amount) { salesActivity.SetComponent(existingPayment); } if (!string.IsNullOrEmpty(refundTransactionId)) { salesActivity.SetComponent(new TransactionInformationComponent(refundTransactionId)); } var salesActivities = order.SalesActivity.ToList(); salesActivities.Add(new EntityReference { EntityTarget = salesActivity.Id, EntityTargetUniqueId = salesActivity.UniqueId }); order.SalesActivity = salesActivities; await _persistPipeline.Run(new PersistEntityArgument(salesActivity), context).ConfigureAwait(false); }
private async Task GenerateSalesActivity(Order order, PaymentComponent existingPayment, PaymentComponent paymentToRefund, CommercePipelineExecutionContext context) { var salesActivity = new SalesActivity { Id = $"{CommerceEntity.IdPrefix<SalesActivity>()}{Guid.NewGuid():N}", ActivityAmount = new Money(existingPayment.Amount.CurrencyCode, paymentToRefund.Amount.Amount * -1), Customer = new EntityReference { EntityTarget = order.EntityComponents.OfType <ContactComponent>().FirstOrDefault()?.CustomerId }, Order = new EntityReference { EntityTarget = order.Id }, Name = "Simple Payment Refund", PaymentStatus = context.GetPolicy <KnownSalesActivityStatusesPolicy>().Completed }; // Add the new sales activity to the OrderSalesActivities list salesActivity.SetComponent(new ListMembershipsComponent { Memberships = new List <string> { CommerceEntity.ListName <SalesActivity>(), context.GetPolicy <KnownOrderListsPolicy>().SalesCredits, string.Format(context.GetPolicy <KnownOrderListsPolicy>().OrderSalesActivities, order.FriendlyId) } }); if (existingPayment.Amount.Amount != paymentToRefund.Amount.Amount) { salesActivity.SetComponent(existingPayment); } var salesActivities = order.SalesActivity.ToList(); salesActivities.Add(new EntityReference { EntityTarget = salesActivity.Id }); order.SalesActivity = salesActivities; await Commander.PersistEntity(context.CommerceContext, salesActivity); }
/// <summary> /// Generates the sales activity. /// </summary> /// <param name="order">The order.</param> /// <param name="payment">The payment.</param> /// <param name="context">The context.</param> /// <returns>A <see cref="Task"/></returns> protected virtual async Task GenerateSalesActivity(Order order, PaymentComponent payment, CommercePipelineExecutionContext context) { var salesActivity = new SalesActivity { Id = CommerceEntity.IdPrefix <SalesActivity>() + Guid.NewGuid().ToString("N", CultureInfo.InvariantCulture), ActivityAmount = new Money(payment.Amount.CurrencyCode, 0), Customer = new EntityReference { EntityTarget = order.EntityComponents.OfType <ContactComponent>().FirstOrDefault()?.CustomerId }, Order = new EntityReference { EntityTarget = order.Id, EntityTargetUniqueId = order.UniqueId }, Name = "Void the Federated payment", PaymentStatus = context.GetPolicy <KnownSalesActivityStatusesPolicy>().Void }; salesActivity.SetComponent(new ListMembershipsComponent { Memberships = new List <string> { CommerceEntity.ListName <SalesActivity>(), string.Format(CultureInfo.InvariantCulture, context.GetPolicy <KnownOrderListsPolicy>().OrderSalesActivities, order.FriendlyId) } }); salesActivity.SetComponent(payment); var salesActivities = order.SalesActivity.ToList(); salesActivities.Add(new EntityReference { EntityTarget = salesActivity.Id, EntityTargetUniqueId = salesActivity.UniqueId }); order.SalesActivity = salesActivities; await _persistEntityPipeline.Run(new PersistEntityArgument(salesActivity), context).ConfigureAwait(false); }
protected async virtual Task GenerateSalesActivity(Order order, PaymentComponent payment, CommercePipelineExecutionContext context) { var salesActivity = new SalesActivity { Id = CommerceEntity.IdPrefix <SalesActivity>() + Guid.NewGuid().ToString("N"), ActivityAmount = new Money(payment.Amount.CurrencyCode, payment.Amount.Amount), Customer = new EntityReference { EntityTarget = order.Components.OfType <ContactComponent>().FirstOrDefault()?.CustomerId }, Order = new EntityReference { EntityTarget = order.Id }, Name = "Refund the Federated Payment", PaymentStatus = "Completed" }; salesActivity.SetComponent(new ListMembershipsComponent { Memberships = new List <string> { CommerceEntity.ListName <SalesActivity>(), context.GetPolicy <KnownOrderListsPolicy>().SalesCredits, string.Format(context.GetPolicy <KnownOrderListsPolicy>().OrderSalesActivities, order.FriendlyId) } }); salesActivity.SetComponent(payment); var salesActivities = order.SalesActivity.ToList(); salesActivities.Add(new EntityReference { EntityTarget = salesActivity.Id }); order.SalesActivity = salesActivities; await this._persistPipeline.Run(new PersistEntityArgument(salesActivity), context); }