diff --git a/src/Application/Documents/Queries/GetAllDocumentsPaginated.cs b/src/Application/Documents/Queries/GetAllDocumentsPaginated.cs index c6c34a92..5f287381 100644 --- a/src/Application/Documents/Queries/GetAllDocumentsPaginated.cs +++ b/src/Application/Documents/Queries/GetAllDocumentsPaginated.cs @@ -21,20 +21,9 @@ public Validator() RuleLevelCascadeMode = CascadeMode.Stop; RuleFor(x => x.RoomId) - .Must((query, roomId) => - { - if (roomId is null) - { - return query.LockerId is null && query.FolderId is null; - } - - if (query.LockerId is null) - { - return query.FolderId is null; - } - - return true; - }).WithMessage("Container orientation is not consistent"); + .Must((query, roomId) => roomId is null + ? query.LockerId is null && query.FolderId is null + : query.LockerId is not null || query.FolderId is null).WithMessage("Container orientation is not consistent"); } } @@ -122,6 +111,12 @@ public async Task> Handle(Query request, documents = documents.Where(x => x.Folder!.Locker.Room.Id == request.RoomId); } + + if (!(request.SearchTerm is null || request.SearchTerm.Trim().Equals(string.Empty))) + { + documents = documents.Where(x => + x.Title.ToLower().Contains(request.SearchTerm.ToLower())); + } var sortBy = request.SortBy ?? nameof(DocumentDto.Id); var sortOrder = request.SortOrder ?? "asc"; diff --git a/tests/Application.Tests.Integration/Documents/Queries/GetAllDocumentsPaginatedTests.cs b/tests/Application.Tests.Integration/Documents/Queries/GetAllDocumentsPaginatedTests.cs index 42d3b5d1..b161422b 100644 --- a/tests/Application.Tests.Integration/Documents/Queries/GetAllDocumentsPaginatedTests.cs +++ b/tests/Application.Tests.Integration/Documents/Queries/GetAllDocumentsPaginatedTests.cs @@ -193,7 +193,7 @@ public async Task ShouldThrowKeyNotFoundException_WhenOnlyRoomIdAndLockerIdArePr // Act var action = async () => await SendAsync(query); - + // Assert await action.Should().ThrowAsync("Locker does not exist.");