/// <summary>
        /// Plays the event.
        /// </summary>
        /// <param name="contactAddedEvent">The contact added event.</param>
        private void PlayEvent(ContactAddedEvent contactAddedEvent)
        {
            Contact contact = Contact.Create(contactAddedEvent.ContactId,
                                             contactAddedEvent.ContactName,
                                             contactAddedEvent.ContactPhoneNumber,
                                             contactAddedEvent.ContactEmailAddress);

            this.Contacts.Add(contact);
        }
Ejemplo n.º 2
0
        public void MerchantDomainEventHandler_ContactAddedEvent_EventIsHandled()
        {
            ContactAddedEvent contactAddedEvent = TestData.ContactAddedEvent;

            Mock <IEstateReportingRepository> estateReportingRepository = new Mock <IEstateReportingRepository>();

            MerchantDomainEventHandler eventHandler = new MerchantDomainEventHandler(estateReportingRepository.Object);

            Logger.Initialise(NullLogger.Instance);

            Should.NotThrow(async() => { await eventHandler.Handle(contactAddedEvent, CancellationToken.None); });
        }
        /// <summary>
        /// Adds the contact.
        /// </summary>
        /// <param name="contactId">The contact identifier.</param>
        /// <param name="contactName">Name of the contact.</param>
        /// <param name="contactPhoneNumber">The contact phone number.</param>
        /// <param name="contactEmailAddress">The contact email address.</param>
        public void AddContact(Guid contactId,
                               String contactName,
                               String contactPhoneNumber,
                               String contactEmailAddress)
        {
            this.EnsureMerchantHasBeenCreated();

            ContactAddedEvent contactAddedEvent =
                new ContactAddedEvent(this.AggregateId, this.EstateId, contactId, contactName, contactPhoneNumber, contactEmailAddress);

            this.ApplyAndAppend(contactAddedEvent);
        }
Ejemplo n.º 4
0
        public async Task Handle(ContactCreatedEvent notification, CancellationToken cancellationToken)
        {
            _logger.LogInformation($"{nameof(ContactCreatedEventHandler)} has been handled by mediatr");
            _logger.LogInformation("Do your stuff here");

            var contactAddedEvents = new ContactAddedEvent
            {
                ContactId = notification.Id,
                Id        = Guid.NewGuid().ToString()
            };

            await _integrationEventPublisherService.Publish(contactAddedEvents, cancellationToken);
        }
Ejemplo n.º 5
0
        public void ContactAddedEvent_CanBeCreated_IsCreated()
        {
            ContactAddedEvent contactAddedEvent =
                new ContactAddedEvent(TestData.MerchantId, TestData.EstateId, TestData.MerchantContactId,
                                      TestData.MerchantContactName, TestData.MerchantContactPhoneNumber,
                                      TestData.MerchantContactEmailAddress);

            contactAddedEvent.ShouldNotBeNull();
            contactAddedEvent.AggregateId.ShouldBe(TestData.MerchantId);
            contactAddedEvent.EventId.ShouldNotBe(Guid.Empty);
            contactAddedEvent.EstateId.ShouldBe(TestData.EstateId);
            contactAddedEvent.MerchantId.ShouldBe(TestData.MerchantId);
            contactAddedEvent.ContactId.ShouldBe(TestData.MerchantContactId);
            contactAddedEvent.ContactName.ShouldBe(TestData.MerchantContactName);
            contactAddedEvent.ContactPhoneNumber.ShouldBe(TestData.MerchantContactPhoneNumber);
            contactAddedEvent.ContactEmailAddress.ShouldBe(TestData.MerchantContactEmailAddress);
        }
Ejemplo n.º 6
0
 /// <summary>
 /// Handles the specific domain event.
 /// </summary>
 /// <param name="domainEvent">The domain event.</param>
 /// <param name="cancellationToken">The cancellation token.</param>
 private async Task HandleSpecificDomainEvent(ContactAddedEvent domainEvent,
                                              CancellationToken cancellationToken)
 {
     await this.EstateReportingRepository.AddMerchantContact(domainEvent, cancellationToken);
 }
        private async Task RaiseContactAddedEvent(ContactReader contactReader, CancellationToken cancellationToken)
        {
            var e = new ContactAddedEvent(contactReader);

            await _mediator.Publish(e, cancellationToken);
        }