Rename WebApi activity filters to ticket filters

This commit is contained in:
Drechsler, Meik
2026-07-23 12:47:28 +02:00
parent 0af8981323
commit 60e2651641
12 changed files with 148 additions and 148 deletions

View File

@@ -91,13 +91,13 @@
<ItemGroup>
<Compile Include="cM42LogEntry.cs" />
<Compile Include="ActivityFilterService.cs" />
<Compile Include="TicketFilterService.cs" />
<Compile Include="F4SDM42DependencyRegistrator.cs" />
<Compile Include="F4SDHelperService.cs" />
<Compile Include="F4SDHelperService.UserId.cs" />
<Compile Include="F4SDM42WebApiController.cs" />
<Compile Include="..\Shared\ActivityFilterCompiler.cs">
<Link>Shared\ActivityFilterCompiler.cs</Link>
<Compile Include="..\Shared\TicketFilterCompiler.cs">
<Link>Shared\TicketFilterCompiler.cs</Link>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="..\SharedAssemblyInfo.cs">

View File

@@ -23,7 +23,7 @@ namespace C4IT.F4SD
int hours,
int queueoption,
List<cApiM42TicketQueueInfo> queues,
cActivityFilterPolicy filters = null)
cTicketFilterPolicy filters = null)
{
var method = MethodBase.GetCurrentMethod();
LogMethodBegin(method);
@@ -34,7 +34,7 @@ namespace C4IT.F4SD
return new List<cF4SDTicketSummary>();
var activityFilter = GetActivityFilter(userId, hours, ticketAndServiceRequestEnabled(), queueoption, queues);
activityFilter = await ApplyActivityFiltersAsync(activityFilter, filters);
activityFilter = await ApplyTicketFiltersAsync(activityFilter, filters);
if (string.IsNullOrWhiteSpace(activityFilter))
return new List<cF4SDTicketSummary>();
LogEntry($"Generating ticket list for userId '{userId}'. ASQL filter: {activityFilter}", LogLevels.Debug);
@@ -96,7 +96,7 @@ namespace C4IT.F4SD
IEnumerable<string> keys,
int queueoption,
List<cApiM42TicketQueueInfo> queues,
cActivityFilterPolicy filters = null)
cTicketFilterPolicy filters = null)
{
var method = MethodBase.GetCurrentMethod();
LogMethodBegin(method);
@@ -144,7 +144,7 @@ namespace C4IT.F4SD
IEnumerable<string> keys,
int queueoption,
List<cApiM42TicketQueueInfo> queues,
cActivityFilterPolicy filters = null)
cTicketFilterPolicy filters = null)
{
var roleIds = await ResolveTicketOverviewRoleIdsAsync(userId, roleGuids);
return await getTicketOverviewCountsByRoles(null, roleIds, keys, queueoption, queues, filters);
@@ -157,7 +157,7 @@ namespace C4IT.F4SD
int count,
int queueoption,
List<cApiM42TicketQueueInfo> queues,
cActivityFilterPolicy filters = null)
cTicketFilterPolicy filters = null)
{
var method = MethodBase.GetCurrentMethod();
LogMethodBegin(method);
@@ -220,7 +220,7 @@ namespace C4IT.F4SD
bool useRoleScope,
int queueoption,
List<cApiM42TicketQueueInfo> queues,
cActivityFilterPolicy filters = null)
cTicketFilterPolicy filters = null)
{
if (userId == Guid.Empty)
return new List<TicketOverviewEntry>();
@@ -233,14 +233,14 @@ namespace C4IT.F4SD
Guid userId,
int queueoption,
List<cApiM42TicketQueueInfo> queues,
cActivityFilterPolicy filters = null)
cTicketFilterPolicy filters = null)
{
if (userId == Guid.Empty)
return new List<TicketOverviewEntry>();
var roleIds = await ResolveTicketOverviewRoleIdsAsync(userId, null);
var filter = BuildTicketOverviewFilterForRoleIds(roleIds, null, queueoption, queues);
filter = await ApplyActivityFiltersAsync(filter, filters);
filter = await ApplyTicketFiltersAsync(filter, filters);
if (string.IsNullOrWhiteSpace(filter))
return new List<TicketOverviewEntry>();
@@ -252,15 +252,15 @@ namespace C4IT.F4SD
bool useRoleScope,
int queueoption,
List<cApiM42TicketQueueInfo> queues,
cActivityFilterPolicy filters = null)
cTicketFilterPolicy filters = null)
{
var filter = BuildTicketOverviewBaseFilter(queueoption, queues);
if (!useRoleScope)
return await ApplyActivityFiltersAsync(filter + $" AND (Recipient = '{Escape(userId.ToString("D"))}')", filters);
return await ApplyTicketFiltersAsync(filter + $" AND (Recipient = '{Escape(userId.ToString("D"))}')", filters);
var roleIds = await ResolveTicketOverviewRoleIdsAsync(userId, null);
filter = BuildTicketOverviewFilterForRoleIds(roleIds, filter);
return await ApplyActivityFiltersAsync(filter, filters);
return await ApplyTicketFiltersAsync(filter, filters);
}
private async Task<List<Guid>> ResolveTicketOverviewRoleIdsAsync(Guid userId, IEnumerable<Guid> roleGuids)

View File

@@ -186,7 +186,7 @@ namespace C4IT.F4SD
}
internal async Task<List<cF4SDTicketSummary>> getTicketListByUser(string userSid, int hours, int queueoption, List<cApiM42TicketQueueInfo> queues, cActivityFilterPolicy filters = null)
internal async Task<List<cF4SDTicketSummary>> getTicketListByUser(string userSid, int hours, int queueoption, List<cApiM42TicketQueueInfo> queues, cTicketFilterPolicy filters = null)
{
var CM = MethodBase.GetCurrentMethod();
LogMethodBegin(CM);
@@ -197,7 +197,7 @@ namespace C4IT.F4SD
var tickets = new List<cF4SDTicketSummary>();
var activityFilter = GetActivityFilter(userSid, hours, ticketAndServiceRequestEnabled(), queueoption, queues);
activityFilter = await ApplyActivityFiltersAsync(activityFilter, filters);
activityFilter = await ApplyTicketFiltersAsync(activityFilter, filters);
if (string.IsNullOrWhiteSpace(activityFilter))
return new List<cF4SDTicketSummary>();
LogEntry($"ASql Filter: {activityFilter}");
@@ -383,7 +383,7 @@ namespace C4IT.F4SD
IEnumerable<string> keys,
int queueoption,
List<cApiM42TicketQueueInfo> queues,
cActivityFilterPolicy filters = null)
cTicketFilterPolicy filters = null)
{
var CM = MethodBase.GetCurrentMethod();
LogMethodBegin(CM);
@@ -440,7 +440,7 @@ namespace C4IT.F4SD
IEnumerable<string> keys,
int queueoption,
List<cApiM42TicketQueueInfo> queues,
cActivityFilterPolicy filters = null)
cTicketFilterPolicy filters = null)
{
var CM = MethodBase.GetCurrentMethod();
LogMethodBegin(CM);
@@ -505,7 +505,7 @@ namespace C4IT.F4SD
int count,
int queueoption,
List<cApiM42TicketQueueInfo> queues,
cActivityFilterPolicy filters = null)
cTicketFilterPolicy filters = null)
{
var CM = MethodBase.GetCurrentMethod();
LogMethodBegin(CM);
@@ -583,7 +583,7 @@ namespace C4IT.F4SD
bool useRoleScope,
int queueoption,
List<cApiM42TicketQueueInfo> queues,
cActivityFilterPolicy filters = null)
cTicketFilterPolicy filters = null)
{
var CM = MethodBase.GetCurrentMethod();
LogMethodBegin(CM);
@@ -612,7 +612,7 @@ namespace C4IT.F4SD
string sid,
int queueoption,
List<cApiM42TicketQueueInfo> queues,
cActivityFilterPolicy filters = null)
cTicketFilterPolicy filters = null)
{
var CM = MethodBase.GetCurrentMethod();
LogMethodBegin(CM);
@@ -625,7 +625,7 @@ namespace C4IT.F4SD
var roleIds = await ResolveTicketOverviewRoleIdsAsync(sid, null);
var filter = BuildTicketOverviewFilterForRoleIds(roleIds, null, queueoption, queues);
filter = await ApplyActivityFiltersAsync(filter, filters);
filter = await ApplyTicketFiltersAsync(filter, filters);
if (string.IsNullOrWhiteSpace(filter))
return new List<TicketOverviewEntry>();
@@ -647,7 +647,7 @@ namespace C4IT.F4SD
IEnumerable<Guid> roleIds,
int queueoption,
List<cApiM42TicketQueueInfo> queues,
cActivityFilterPolicy filters = null)
cTicketFilterPolicy filters = null)
{
var CM = MethodBase.GetCurrentMethod();
LogMethodBegin(CM);
@@ -656,7 +656,7 @@ namespace C4IT.F4SD
await Task.Delay(0);
var filter = BuildTicketOverviewFilterForRoleIds(roleIds, null, queueoption, queues);
filter = await ApplyActivityFiltersAsync(filter, filters);
filter = await ApplyTicketFiltersAsync(filter, filters);
return await LoadTicketOverviewEntriesByFilter(filter);
}
catch (Exception E)
@@ -800,7 +800,7 @@ namespace C4IT.F4SD
bool useRoleScope,
int queueoption,
List<cApiM42TicketQueueInfo> queues,
cActivityFilterPolicy filters = null)
cTicketFilterPolicy filters = null)
{
var filter = BuildTicketOverviewBaseFilter(queueoption, queues);
@@ -808,12 +808,12 @@ namespace C4IT.F4SD
{
var recipientFilter = $"Recipient.Accounts.T(SPSAccountClassAd).Sid = '{Escape(sid)}'";
filter += $" AND ({recipientFilter})";
return await ApplyActivityFiltersAsync(filter, filters);
return await ApplyTicketFiltersAsync(filter, filters);
}
var roleIds = await ResolveTicketOverviewRoleIdsAsync(sid, null);
filter = BuildTicketOverviewFilterForRoleIds(roleIds, filter);
return await ApplyActivityFiltersAsync(filter, filters);
return await ApplyTicketFiltersAsync(filter, filters);
}
private string BuildTicketOverviewBaseFilter(int queueoption, List<cApiM42TicketQueueInfo> queues)

View File

@@ -155,7 +155,7 @@ namespace C4IT.F4SD
}
[Route("v2/getTicketList"), HttpPost]
public async Task<List<cF4SDTicketSummary>> getTicketListV2([FromBody] cTicketActivityListRequest request)
public async Task<List<cF4SDTicketSummary>> getTicketListV2([FromBody] cTicketListFilterRequest request)
{
if (request?.UserId != Guid.Empty)
return await _f4stHelperService.getTicketListByUser(
@@ -388,10 +388,10 @@ namespace C4IT.F4SD
request?.Filters) ?? new List<F4SDHelperService.TicketOverviewRelationDto>();
}
[Route("v2/getActivityFilterCapabilities"), HttpGet]
public cTicketActivityFilterCapabilities getActivityFilterCapabilitiesV2()
[Route("v2/getTicketFilterCapabilities"), HttpGet]
public cTicketFilterCapabilities getTicketFilterCapabilitiesV2()
{
return _f4stHelperService.GetActivityFilterCapabilities();
return _f4stHelperService.GetTicketFilterCapabilities();
}
/*
[Route("updateActivitySolution/{objectId}"), HttpPost]

View File

@@ -25,12 +25,12 @@ namespace C4IT.F4SD
private static readonly Dictionary<string, WorkspaceRoleCacheEntry> workspaceRoleCache =
new Dictionary<string, WorkspaceRoleCacheEntry>(StringComparer.OrdinalIgnoreCase);
internal async Task<string> ApplyActivityFiltersAsync(string baseFilter, cActivityFilterPolicy policy)
internal async Task<string> ApplyTicketFiltersAsync(string baseFilter, cTicketFilterPolicy policy)
{
var result = await ActivityFilterCompiler.CompileAsync(policy, ResolveWorkspaceRolesAsync);
var result = await TicketFilterCompiler.CompileAsync(policy, ResolveWorkspaceRolesAsync);
if (!result.Success)
{
LogEntry($"Activity filter rejected (fail closed): {result.Error}", LogLevels.Error);
LogEntry($"Ticket filter rejected (fail closed): {result.Error}", LogLevels.Error);
return null;
}
@@ -39,22 +39,22 @@ namespace C4IT.F4SD
: $"({baseFilter}) AND ({result.Clause})";
}
internal cTicketActivityFilterCapabilities GetActivityFilterCapabilities()
internal cTicketFilterCapabilities GetTicketFilterCapabilities()
{
var capabilities = new cTicketActivityFilterCapabilities
var capabilities = new cTicketFilterCapabilities
{
Provider = ActivityFilterCompiler.ProviderName,
CommonFields = new List<string> { ActivityFilterCompiler.AssignmentGroupField },
ProviderFields = new List<string> { ActivityFilterCompiler.QueueField }
Provider = TicketFilterCompiler.ProviderName,
CommonFields = new List<string> { TicketFilterCompiler.AssignmentGroupField },
ProviderFields = new List<string> { TicketFilterCompiler.QueueField }
};
if (SPSDataEngineSchemaReader.ClassGetIDFromName("ESMWorkspaceClassBase") != Guid.Empty)
capabilities.ProviderFields.Add(ActivityFilterCompiler.WorkspaceField);
capabilities.ProviderFields.Add(TicketFilterCompiler.WorkspaceField);
return capabilities;
}
private async Task<ActivityFilterResolution> ResolveWorkspaceRolesAsync(cActivityFilter filter)
private async Task<TicketFilterResolution> ResolveWorkspaceRolesAsync(cTicketFilter filter)
{
await Task.Delay(0);
var workspaceClassId = SPSDataEngineSchemaReader.ClassGetIDFromName("ESMWorkspaceClassBase");
@@ -62,7 +62,7 @@ namespace C4IT.F4SD
return WorkspaceFailure("ESMWorkspaceClassBase is not available.");
var roleIds = new HashSet<Guid>();
foreach (var value in filter?.Values ?? new List<cActivityFilterValue>())
foreach (var value in filter?.Values ?? new List<cTicketFilterValue>())
{
var key = !string.IsNullOrWhiteSpace(value?.ID)
? "id:" + value.ID.Trim()
@@ -125,7 +125,7 @@ namespace C4IT.F4SD
roleIds.UnionWith(resolved);
}
return new ActivityFilterResolution
return new TicketFilterResolution
{
Success = true,
RoleIds = roleIds.ToList()
@@ -167,9 +167,9 @@ namespace C4IT.F4SD
}
}
private static ActivityFilterResolution WorkspaceFailure(string error)
private static TicketFilterResolution WorkspaceFailure(string error)
{
return new ActivityFilterResolution
return new TicketFilterResolution
{
Success = false,
Error = error