diff --git a/SeaHaven.DataServices/Helpers/WorkOrderBoardQueryFilters.cs b/SeaHaven.DataServices/Helpers/WorkOrderBoardQueryFilters.cs index e7b3cc1..0b63ac5 100644 --- a/SeaHaven.DataServices/Helpers/WorkOrderBoardQueryFilters.cs +++ b/SeaHaven.DataServices/Helpers/WorkOrderBoardQueryFilters.cs @@ -269,7 +269,9 @@ namespace SeaHaven.DataServices.Helpers && w.ServiceDefinition.IsActive && w.ServiceDefinition.IsDeleted != true ? (w.ServiceDefinition.Name ?? "").ToLower().Contains(pm) - : (w.ServiceNameSnapshot ?? w.Trade ?? w.Problem ?? "").ToLower().Contains(pm)) + : ((w.ServiceDefinition != null + && (w.ServiceDefinition.Name ?? "").ToLower().Contains(pm)) + || (w.ServiceNameSnapshot ?? w.Trade ?? w.Problem ?? "").ToLower().Contains(pm))) : (w.Trade ?? "").ToLower().Contains(pm) || (w.Problem ?? "").ToLower().Contains(pm))); } diff --git a/SeaHavenIndustries.Tests/WorkOrderServiceRegistryFilterRelationalTests.cs b/SeaHavenIndustries.Tests/WorkOrderServiceRegistryFilterRelationalTests.cs index b9a6e0a..60a1016 100644 --- a/SeaHavenIndustries.Tests/WorkOrderServiceRegistryFilterRelationalTests.cs +++ b/SeaHavenIndustries.Tests/WorkOrderServiceRegistryFilterRelationalTests.cs @@ -33,11 +33,11 @@ public sealed class WorkOrderServiceRegistryFilterRelationalTests new Service { Id = 20, - Name = "Current Inactive Name", - NormalizedName = "CURRENT INACTIVE NAME", + Name = "Original Inactive Name", + NormalizedName = "ORIGINAL INACTIVE NAME", Trade = "Electrical", IconKey = "electrical", - IsActive = false + IsActive = true }); context.workOrders.AddRange( new WorkOrder @@ -62,6 +62,13 @@ public sealed class WorkOrderServiceRegistryFilterRelationalTests }); await context.SaveChangesAsync(); + var renamedService = await context.Services.SingleAsync(service => service.Id == 20); + renamedService.Name = "Current Inactive Name"; + renamedService.NormalizedName = "CURRENT INACTIVE NAME"; + await context.SaveChangesAsync(); + renamedService.IsActive = false; + await context.SaveChangesAsync(); + var activeRows = await WorkOrderBoardProjection.ProjectRowsAsync( context, context.workOrders.AsNoTracking().Where(w => w.Id == 1), @@ -123,7 +130,7 @@ public sealed class WorkOrderServiceRegistryFilterRelationalTests "legacy-display=Legacy Cooling", "active-filter=1", "inactive-snapshot-filter=2", - "inactive-current-name-filter=", + "inactive-current-name-filter=2", "legacy-trade-filter=3", "legacy-problem-filter=3" });