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]); }
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]); }
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()); }
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()); } }
public async Task <IActionResult> GetBySpecification([FromQuery] RegistrationSpecification specification) { var result = await this.registrationService.GetRegistrationsBySpecificationAsync(specification); return(Ok(result)); }