public static AppointmentPaymentInvoiced Create(Identifier id, AppointmentPayment payment) { return(new AppointmentPaymentInvoiced { EntityId = id, AppointmentId = payment.AppointmentId, Amount = payment.Amount, Currency = payment.Currency, ModifiedUtc = DateTime.UtcNow }); }
protected override void OnStateChanged(IChangeEvent @event) { switch (@event) { case Events.Payment.Created _: break; case Events.Payment.AppointmentPaymentInvoiced added: AppointmentInvoice = new AppointmentPayment(added.AppointmentId.ToIdentifier(), added.Amount, added.Currency); Logger.LogDebug("Payment {Id} added invoice for appointment {Appointment}", Id, added.AppointmentId); break; default: throw new InvalidOperationException($"Unknown event {@event.GetType()}"); } }
public void CreateInvoice(AppointmentPayment appointmentPayment) { RaiseChangeEvent(PaymentsDomain.Events.Payment.AppointmentPaymentInvoiced.Create(Id, appointmentPayment)); }