mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-10-04 11:22:09 +00:00
fix(workorders): match registry service filters exactly
This commit is contained in:
parent
0894b20e59
commit
0cd0d3b066
2 changed files with 64 additions and 14 deletions
|
|
@ -265,20 +265,20 @@ namespace SeaHaven.DataServices.Helpers
|
||||||
return query;
|
return query;
|
||||||
|
|
||||||
return query.Where(w =>
|
return query.Where(w =>
|
||||||
normalized.Any(pm =>
|
w.ServiceId.HasValue
|
||||||
w.ServiceId.HasValue
|
? (w.ServiceDefinition != null
|
||||||
? (w.ServiceDefinition != null
|
&& w.ServiceDefinition.IsActive
|
||||||
&& w.ServiceDefinition.IsActive
|
&& w.ServiceDefinition.IsDeleted != true
|
||||||
&& w.ServiceDefinition.IsDeleted != true
|
&& !(w.LifecycleStatus == LifecycleStatus.Completed
|
||||||
&& !(w.LifecycleStatus == LifecycleStatus.Completed
|
|| (w.LifecycleStatus == null
|
||||||
|| (w.LifecycleStatus == null
|
&& CompletedLegacyStatuses.Contains(((w.LegacyStatus ?? w.Status) ?? "").Trim().ToLower())))
|
||||||
&& CompletedLegacyStatuses.Contains(((w.LegacyStatus ?? w.Status) ?? "").Trim().ToLower())))
|
? normalized.Contains(((w.ServiceDefinition.Name ?? "").Trim()).ToLower())
|
||||||
? (w.ServiceDefinition.Name ?? "").ToLower().Contains(pm)
|
: ((w.ServiceDefinition != null
|
||||||
: ((w.ServiceDefinition != null
|
&& normalized.Contains(((w.ServiceDefinition.Name ?? "").Trim()).ToLower()))
|
||||||
&& (w.ServiceDefinition.Name ?? "").ToLower().Contains(pm))
|
|| normalized.Contains(((w.ServiceNameSnapshot ?? w.Trade ?? w.Problem ?? "").Trim()).ToLower())))
|
||||||
|| (w.ServiceNameSnapshot ?? w.Trade ?? w.Problem ?? "").ToLower().Contains(pm)))
|
: normalized.Any(pm =>
|
||||||
: (w.Trade ?? "").ToLower().Contains(pm)
|
(w.Trade ?? "").ToLower().Contains(pm)
|
||||||
|| (w.Problem ?? "").ToLower().Contains(pm)));
|
|| (w.Problem ?? "").ToLower().Contains(pm)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,24 @@ public sealed class WorkOrderServiceRegistryFilterRelationalTests
|
||||||
Trade = "Electrical",
|
Trade = "Electrical",
|
||||||
IconKey = "electrical",
|
IconKey = "electrical",
|
||||||
IsActive = true
|
IsActive = true
|
||||||
|
},
|
||||||
|
new Service
|
||||||
|
{
|
||||||
|
Id = 30,
|
||||||
|
Name = "QA Service",
|
||||||
|
NormalizedName = "QA SERVICE",
|
||||||
|
Trade = "Electrical",
|
||||||
|
IconKey = "electrical",
|
||||||
|
IsActive = true
|
||||||
|
},
|
||||||
|
new Service
|
||||||
|
{
|
||||||
|
Id = 31,
|
||||||
|
Name = "QA Service Extended",
|
||||||
|
NormalizedName = "QA SERVICE EXTENDED",
|
||||||
|
Trade = "Electrical",
|
||||||
|
IconKey = "electrical",
|
||||||
|
IsActive = true
|
||||||
});
|
});
|
||||||
context.workOrders.AddRange(
|
context.workOrders.AddRange(
|
||||||
new WorkOrder
|
new WorkOrder
|
||||||
|
|
@ -76,6 +94,22 @@ public sealed class WorkOrderServiceRegistryFilterRelationalTests
|
||||||
ServiceNameSnapshot = "Completed Archive Beta",
|
ServiceNameSnapshot = "Completed Archive Beta",
|
||||||
Trade = "Completed Archive Beta",
|
Trade = "Completed Archive Beta",
|
||||||
Status = "Done"
|
Status = "Done"
|
||||||
|
},
|
||||||
|
new WorkOrder
|
||||||
|
{
|
||||||
|
Id = 6,
|
||||||
|
ServiceId = 30,
|
||||||
|
ServiceNameSnapshot = "QA Service",
|
||||||
|
Trade = "QA Service",
|
||||||
|
LifecycleStatus = LifecycleStatus.Scheduled
|
||||||
|
},
|
||||||
|
new WorkOrder
|
||||||
|
{
|
||||||
|
Id = 7,
|
||||||
|
ServiceId = 31,
|
||||||
|
ServiceNameSnapshot = "QA Service Extended",
|
||||||
|
Trade = "QA Service Extended",
|
||||||
|
LifecycleStatus = LifecycleStatus.Scheduled
|
||||||
});
|
});
|
||||||
await context.SaveChangesAsync();
|
await context.SaveChangesAsync();
|
||||||
|
|
||||||
|
|
@ -147,6 +181,18 @@ public sealed class WorkOrderServiceRegistryFilterRelationalTests
|
||||||
.OrderBy(id => id)
|
.OrderBy(id => id)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
|
var exactRegistryNameMatches = await WorkOrderBoardQueryFilters
|
||||||
|
.ApplyPmTypeFilter(context.workOrders.AsNoTracking(), new[] { "QA Service" })
|
||||||
|
.Select(w => w.Id)
|
||||||
|
.OrderBy(id => id)
|
||||||
|
.ToListAsync();
|
||||||
|
|
||||||
|
var multipleRegistryNameMatches = await WorkOrderBoardQueryFilters
|
||||||
|
.ApplyPmTypeFilter(context.workOrders.AsNoTracking(), new[] { "QA Service", "QA Service Extended" })
|
||||||
|
.Select(w => w.Id)
|
||||||
|
.OrderBy(id => id)
|
||||||
|
.ToListAsync();
|
||||||
|
|
||||||
var legacyTradeMatches = await WorkOrderBoardQueryFilters
|
var legacyTradeMatches = await WorkOrderBoardQueryFilters
|
||||||
.ApplyPmTypeFilter(context.workOrders.AsNoTracking(), new[] { "Legacy Cooling" })
|
.ApplyPmTypeFilter(context.workOrders.AsNoTracking(), new[] { "Legacy Cooling" })
|
||||||
.Select(w => w.Id)
|
.Select(w => w.Id)
|
||||||
|
|
@ -170,6 +216,8 @@ public sealed class WorkOrderServiceRegistryFilterRelationalTests
|
||||||
$"completed-snapshot-filter={string.Join(',', completedSnapshotMatches)}",
|
$"completed-snapshot-filter={string.Join(',', completedSnapshotMatches)}",
|
||||||
$"legacy-completed-snapshot-filter={string.Join(',', legacyCompletedSnapshotMatches)}",
|
$"legacy-completed-snapshot-filter={string.Join(',', legacyCompletedSnapshotMatches)}",
|
||||||
$"current-name-alias-filter={string.Join(',', currentNameAliasMatches)}",
|
$"current-name-alias-filter={string.Join(',', currentNameAliasMatches)}",
|
||||||
|
$"exact-registry-filter={string.Join(',', exactRegistryNameMatches)}",
|
||||||
|
$"multiple-registry-filter={string.Join(',', multipleRegistryNameMatches)}",
|
||||||
$"legacy-trade-filter={string.Join(',', legacyTradeMatches)}",
|
$"legacy-trade-filter={string.Join(',', legacyTradeMatches)}",
|
||||||
$"legacy-problem-filter={string.Join(',', legacyProblemMatches)}"
|
$"legacy-problem-filter={string.Join(',', legacyProblemMatches)}"
|
||||||
});
|
});
|
||||||
|
|
@ -186,6 +234,8 @@ public sealed class WorkOrderServiceRegistryFilterRelationalTests
|
||||||
"completed-snapshot-filter=4",
|
"completed-snapshot-filter=4",
|
||||||
"legacy-completed-snapshot-filter=5",
|
"legacy-completed-snapshot-filter=5",
|
||||||
"current-name-alias-filter=1,4,5",
|
"current-name-alias-filter=1,4,5",
|
||||||
|
"exact-registry-filter=6",
|
||||||
|
"multiple-registry-filter=6,7",
|
||||||
"legacy-trade-filter=3",
|
"legacy-trade-filter=3",
|
||||||
"legacy-problem-filter=3"
|
"legacy-problem-filter=3"
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue