Rename WebApi activity filters to ticket filters
This commit is contained in:
@@ -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">
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user