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);
        }
Example #8
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(FileAddedToImportLogEvent domainEvent,
                                              CancellationToken cancellationToken)
 {
     await this.EstateReportingRepository.AddFileToImportLog(domainEvent, cancellationToken);
 }