public async Task StartUploadSession_GivenValidArgs_DoesNotThrowException()
        {
            var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

            Console.WriteLine(config.FilePath);

            // Arrange
            string sessionId = "16715015-d920-4998-87fa-9344145c901c";
            StartUploadSessionCommand command = new StartUploadSessionCommand(Guid.NewGuid().ToString(),
                                                                              Guid.NewGuid().ToString(),
                                                                              new CommandIssuer(Guid.NewGuid().ToString(), Guid.NewGuid().ToString()),
                                                                              sessionId,
                                                                              new OwnerIdData(Guid.NewGuid().ToString(), Guid.NewGuid().ToString()),
                                                                              new List <FileDescriptionData>()
            {
                new FileDescriptionData(Guid.NewGuid().ToString(), "testFile.pdf", "application/pdf", 1048576),
                new FileDescriptionData(Guid.NewGuid().ToString(), "testFile2.pdf", "application/msword", 1048576)
            },
                                                                              true);
            var applicationService      = this.Fixture.Kernel.Get <IFileStorageCommandApplicationService>();
            var uploadSessionRepository = this.Fixture.Kernel.Get <IUploadSessionRepository>();

            // Act
            await applicationService.StartUploadSessionAsync(command);

            // Assert
            UploadSession session = await uploadSessionRepository.GetByIdAsync(new Guid(sessionId));

            Assert.NotNull(session);
            Assert.Equal(sessionId, session.Id.ToString());
        }
Exemplo n.º 2
0
        public async Task <IActionResult> InitializeUploadAsync([FromBody] StartUploadSessionModel model,
                                                                CancellationToken cancellationToken)
        {
            var command = new StartUploadSessionCommand(model.FileName, model.SizeInBytes, model.Extension.ToString());
            var entity  = await _mediator.Send(command, cancellationToken);

            return(Ok(entity));
        }
        public async Task StartUploadSessionAsync(StartUploadSessionCommand command)
        {
            // TODO: Check that id's specified in the command are valid and unique (including file id's)
            Guid sessionId = new Guid(command.SessionId);

            // Start session
            UploadSession session = UploadSession.Start(sessionId,
                                                        new OwnerId(command.OwnerId.BusinessId, command.OwnerId.UserId),
                                                        ExternalContractsConverter.ConvertToInternalType(command.SessionId, command.FileDescriptions),
                                                        command.UploadAsPublic);

            // Set application context
            SetApplicationContext(command);

            // Save changes
            await this.UploadSessionRepository.Add(session);

            await this.UnitOfWork.CommitChangesAsync();
        }
Exemplo n.º 4
0
        public async override Task StartUploadSessionAsync(StartUploadSessionCommand command)
        {
            this.Logger.LogInformation("[Start] {0} received.", command.GetType().Name);

            if (command != null)
            {
                this.Logger.LogInformation("[Start] Processing {0} with id = '{1}' and correlationId = '{2}'. Starting upload session with id = '{3}'.",
                                           command.GetType().Name, command.CommandId, command.CorrelationId, command.SessionId);
            }

            await base.StartUploadSessionAsync(command);

            if (command != null)
            {
                this.Logger.LogInformation("[Finish] Processing {0} with id = '{1}' and correlationId = '{2}'. Starting upload session with id = {3}'.",
                                           command.GetType().Name, command.CommandId, command.CorrelationId, command.SessionId);
            }

            this.Logger.LogInformation("[Finish] {0} received.", command.GetType().Name);
        }
Exemplo n.º 5
0
        public async Task ShouldGenerateSessionWith()
        {
            // Arrange
            var fixture = new TestFixture <StartUploadSessionCommandHandler>();
            var command = new StartUploadSessionCommand("file", 10, "txt");

            fixture.Freeze <IOptions <UploadSettings> >().Value.Returns(new UploadSettings {
                ChunkSizeInBytes = 3
            });

            var expected = new StartUploadSessionResponse
            {
                Extension   = "txt",
                FileName    = "file",
                SizeInBytes = 10,
                Parts       = new[]
                {
                    new UploadPart {
                        Offset = 0, SizeInBytes = 3
                    },
                    new UploadPart {
                        Offset = 3, SizeInBytes = 3
                    },
                    new UploadPart {
                        Offset = 6, SizeInBytes = 3
                    },
                    new UploadPart {
                        Offset = 9, SizeInBytes = 1
                    }
                }
            };

            // Act
            var result = await fixture.Sut.Handle(command, CancellationToken.None);

            // Assert
            result.Should().BeEquivalentTo(expected,
                                           opt => opt.Excluding(x => x.SelectedMemberPath.EndsWith("Id")));
        }
Exemplo n.º 6
0
 public async virtual Task StartUploadSessionAsync(StartUploadSessionCommand command)
 {
     await this.ApplicationService.StartUploadSessionAsync(command);
 }
 public async override Task StartUploadSessionAsync(StartUploadSessionCommand command)
 {
     await base.StartUploadSessionAsync(command);
 }