public void FileDomainEventHandler_FileAddedToImportLogEvent_EventIsHandled() { Mock <IMediator> mediator = new Mock <IMediator>(); FileDomainEventHandler eventHandler = new FileDomainEventHandler(mediator.Object); FileAddedToImportLogEvent fileAddedToImportLogEvent = TestData.FileAddedToImportLogEvent; Should.NotThrow(async() => { await eventHandler.Handle(fileAddedToImportLogEvent, CancellationToken.None); }); }
public void FileProcessorDomainEventHandler_FileAddedToImportLogEvent_EventIsHandled() { FileAddedToImportLogEvent domainEvent = TestData.FileAddedToImportLogEvent; Mock <IEstateReportingRepository> estateReportingRepository = new Mock <IEstateReportingRepository>(); FileProcessorDomainEventHandler eventHandler = new FileProcessorDomainEventHandler(estateReportingRepository.Object); Logger.Initialise(NullLogger.Instance); Should.NotThrow(async() => { await eventHandler.Handle(domainEvent, CancellationToken.None); }); }
/// <summary> /// Plays the event. /// </summary> /// <param name="domainEvent">The domain event.</param> private void PlayEvent(FileAddedToImportLogEvent domainEvent) { this.Files.Add(new ImportLogFile { EstateId = domainEvent.EstateId, FileId = domainEvent.FileId, FileProfileId = domainEvent.FileProfileId, MerchantId = domainEvent.MerchantId, FilePath = domainEvent.FilePath, OriginalFileName = domainEvent.OriginalFileName, UserId = domainEvent.UserId }); }
/// <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(FileAddedToImportLogEvent domainEvent, CancellationToken cancellationToken) { ProcessUploadedFileRequest request = new ProcessUploadedFileRequest(domainEvent.EstateId, domainEvent.MerchantId, domainEvent.FileImportLogId, domainEvent.FileId, domainEvent.UserId, domainEvent.FilePath, domainEvent.FileProfileId, domainEvent.FileUploadedDateTime); await this.Mediator.Send(request, cancellationToken); }
/// <summary> /// Adds the imported file. /// </summary> /// <param name="fileId">The file identifier.</param> /// <param name="merchantId">The merchant identifier.</param> /// <param name="userId">The user identifier.</param> /// <param name="fileProfileId">The file profile identifier.</param> /// <param name="originalFileName">Name of the original file.</param> /// <param name="filePath">The file path.</param> /// <param name="fileUploadedDateTime">The file uploaded date time.</param> /// <exception cref="InvalidOperationException"> /// Import log has not been created /// or /// Duplicate file {originalFileName} detected File Id [{fileId}] /// </exception> public void AddImportedFile(Guid fileId, Guid merchantId, Guid userId, Guid fileProfileId, String originalFileName, String filePath, DateTime fileUploadedDateTime) { if (this.IsCreated == false) { throw new InvalidOperationException("Import log has not been created"); } if (this.Files.Any(f => f.FileId == fileId)) { throw new InvalidOperationException($"Duplicate file {originalFileName} detected File Id [{fileId}]"); } FileAddedToImportLogEvent fileAddedToImportLogEvent = new FileAddedToImportLogEvent(this.AggregateId, fileId, this.EstateId, merchantId, userId, fileProfileId, originalFileName, filePath, fileUploadedDateTime); this.ApplyAndAppend(fileAddedToImportLogEvent); }
public static void LoadTypes() { FileAddedToImportLogEvent fileAddedToImportLogEvent = new FileAddedToImportLogEvent(Guid.Empty, Guid.Empty, Guid.Empty, Guid.Empty, Guid.Empty, Guid.Empty, String.Empty, String.Empty, new DateTime()); FileLineAddedEvent fileLineAddedEvent = new FileLineAddedEvent(Guid.Empty, Guid.Empty, 0, String.Empty); TypeProvider.LoadDomainEventsTypeDynamically(); }
public void FileAddedToImportLogEvent_CanBeCreated_IsCreated() { FileAddedToImportLogEvent fileAddedToImportLogEvent = new FileAddedToImportLogEvent(TestData.FileImportLogId, TestData.FileId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.OriginalFileName, TestData.FilePath, TestData.FileUploadedDateTime); fileAddedToImportLogEvent.FileImportLogId.ShouldBe(TestData.FileImportLogId); fileAddedToImportLogEvent.FileId.ShouldBe(TestData.FileId); fileAddedToImportLogEvent.EstateId.ShouldBe(TestData.EstateId); fileAddedToImportLogEvent.MerchantId.ShouldBe(TestData.MerchantId); fileAddedToImportLogEvent.UserId.ShouldBe(TestData.UserId); fileAddedToImportLogEvent.FileProfileId.ShouldBe(TestData.FileProfileId); fileAddedToImportLogEvent.OriginalFileName.ShouldBe(TestData.OriginalFileName); fileAddedToImportLogEvent.FilePath.ShouldBe(TestData.FilePath); fileAddedToImportLogEvent.FileUploadedDateTime.ShouldBe(TestData.FileUploadedDateTime); }
/// <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(FileAddedToImportLogEvent domainEvent, CancellationToken cancellationToken) { await this.EstateReportingRepository.AddFileToImportLog(domainEvent, cancellationToken); }