Esempio n. 1
0
        public async Task GetRegistrationsBySpecificationAsync_ForSpecifiedDeptorIds_ReturnsRegistrationsByDeptorIds()
        {
            // Arrange
            var fixture       = new Fixture();
            var registrations = fixture
                                .Build <Registration>()
                                .Without(x => x.PrivateData)
                                .Without(x => x.CompanyData)
                                .Without(x => x.DateDeleted)
                                .CreateMany(3)
                                .ToList();

            var dbContext = DbContextUtils.CreateInMemoryDbContext();

            dbContext.Registrations.AddRange(registrations);
            await dbContext.SaveChangesAsync();

            var specification = new RegistrationSpecification();

            specification.DebtorIds.AddRange(new[] { registrations[0].DeptorId.ToString(), registrations[1].DeptorId.ToString() });

            var repository = new RegistrationRepository(dbContext);

            // Act
            var result = await repository.GetRegistrationsBySpecificationAsync(specification);

            // Assert
            result.Should().BeEquivalentTo(registrations[0], registrations[1]);
        }
Esempio n. 2
0
        public async Task GetRegistrationsBySpecificationAsync_ForSpecification_ExcludesDeletedRegistrations()
        {
            // Arrange
            var fixture       = new Fixture();
            var registrations = fixture
                                .Build <Registration>()
                                .Without(x => x.PrivateData)
                                .Without(x => x.CompanyData)
                                .With(x => x.DateDeleted, DateTime.UtcNow)
                                .CreateMany(3)
                                .ToList();

            var dbContext = DbContextUtils.CreateInMemoryDbContext();

            dbContext.Registrations.AddRange(registrations);
            await dbContext.SaveChangesAsync();

            var specification = new RegistrationSpecification();

            specification.Ids.Add(registrations[0].Id.ToString());
            specification.Ids.Add(registrations[2].Id.ToString());

            var repository = new RegistrationRepository(dbContext);

            // Act
            var result = await repository.GetRegistrationsBySpecificationAsync(specification);

            // Assert
            result.Should().NotContain(registrations[2]);
        }
Esempio n. 3
0
 public Task <List <Registration> > GetRegistrationsBySpecificationAsync(RegistrationSpecification specification)
 {
     return(this.Queryable
            .Include(x => x.CompanyData)
            .Include(x => x.PrivateData)
            .WhereOr(specification.Ids, x => y => y.Id.ToString() == x)
            .WhereOr(specification.InvoiceIds, x => y => y.InvoiceId.ToString() == x)
            .WhereOr(specification.DebtorIds, x => y => y.DeptorId.ToString() == x)
            .Where(x => !x.DateDeleted.HasValue)
            .ToListAsync());
 }
Esempio n. 4
0
        public async Task <List <RegistrationDetailsDTO> > GetRegistrationsBySpecificationAsync(RegistrationSpecification specification)
        {
            using (IUnitOfWork uow = this.unitOfWorkFactory.CreateUnitOfWork())
            {
                var repo = uow.GetRepository <IRegistrationRepository>();

                var registrations = await repo.GetRegistrationsBySpecificationAsync(specification);

                return(registrations.Select(this.Map).ToList());
            }
        }
Esempio n. 5
0
        public async Task <IActionResult> GetBySpecification([FromQuery] RegistrationSpecification specification)
        {
            var result = await this.registrationService.GetRegistrationsBySpecificationAsync(specification);

            return(Ok(result));
        }