Queues Ticketoverview
This commit is contained in:
@@ -37,9 +37,9 @@ namespace C4IT.DataHistoryProvider
|
||||
private const string constUrlUpdateSolution = "m42Services/api/c4itf4sdwebapi/updateactivitysolution/{0}/";
|
||||
private const string constUrlGetPickupValues = "m42Services/api/c4itf4sdwebapi/getpickup/{0}?group={1}";
|
||||
private const string constUrlGetRoleMeberships = "m42services/api/c4itf4sdwebapi/getrolememberships/?sid={0}";
|
||||
private const string constUrlGetTicketOverviewCounts = "m42Services/api/c4itf4sdwebapi/getticketoverviewcounts?sid={0}&scope={1}&keys={2}";
|
||||
private const string constUrlGetTicketOverviewCounts = "m42Services/api/c4itf4sdwebapi/getticketoverviewcounts";
|
||||
private const string constUrlGetTicketOverviewCountsByRoles = "m42Services/api/c4itf4sdwebapi/getticketoverviewcountsbyroles";
|
||||
private const string constUrlGetTicketOverviewRelations = "m42Services/api/c4itf4sdwebapi/getticketoverviewrelations?sid={0}&scope={1}&key={2}&count={3}";
|
||||
private const string constUrlGetTicketOverviewRelations = "m42Services/api/c4itf4sdwebapi/getticketoverviewrelations";
|
||||
private const string constUrlGetDataQueryRelationItems = "m42Services/api/dataquery/relationitems";
|
||||
private const string constUrlGetDataQueryRelationItemsCount = "m42Services/api/dataquery/relationitems/count";
|
||||
private const string constUrlCreateTicket = "m42Services/api/ticket/create?activitytype={0}";
|
||||
@@ -118,6 +118,8 @@ namespace C4IT.DataHistoryProvider
|
||||
public string Sid { get; set; }
|
||||
public List<Guid> RoleGuids { get; set; } = new List<Guid>();
|
||||
public List<string> Keys { get; set; } = new List<string>();
|
||||
public int QueueOption { get; set; }
|
||||
public string Queues { get; set; }
|
||||
}
|
||||
|
||||
private sealed class TicketOverviewCountsByRolesResponse
|
||||
@@ -803,11 +805,16 @@ namespace C4IT.DataHistoryProvider
|
||||
if (roleList.Count == 0)
|
||||
return new Dictionary<Guid, Dictionary<string, int>>();
|
||||
|
||||
var queueOption = GetActivityQueueOption();
|
||||
var encodedQueues = queueOption != 0 ? GetEncodedActivityQueues() : null;
|
||||
|
||||
var request = new TicketOverviewCountsByRolesRequest
|
||||
{
|
||||
Sid = requestInfo?.userInfo?.AdSid,
|
||||
RoleGuids = roleList,
|
||||
Keys = requestedKeys?.Where(k => !string.IsNullOrWhiteSpace(k)).ToList() ?? new List<string>()
|
||||
Keys = requestedKeys?.Where(k => !string.IsNullOrWhiteSpace(k)).ToList() ?? new List<string>(),
|
||||
QueueOption = queueOption,
|
||||
Queues = encodedQueues
|
||||
};
|
||||
|
||||
var jsonBody = JsonConvert.SerializeObject(request, Formatting.None,
|
||||
@@ -901,6 +908,36 @@ namespace C4IT.DataHistoryProvider
|
||||
return filtered;
|
||||
}
|
||||
|
||||
private int GetActivityQueueOption()
|
||||
{
|
||||
return (int)Collector.InfrastructureConfig.M42Wpm.ActivityQueueFilterOption;
|
||||
}
|
||||
|
||||
private string GetEncodedActivityQueues()
|
||||
{
|
||||
var queues = Collector.InfrastructureConfig.M42Wpm.ActivityQueues;
|
||||
if (queues == null || queues.Count == 0)
|
||||
return null;
|
||||
|
||||
return string.Join("|",
|
||||
queues.Select(q =>
|
||||
string.Format("{0}:{1}",
|
||||
HttpUtility.UrlEncode(q.QueueName),
|
||||
HttpUtility.UrlEncode(q.QueueID.ToString())
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
private static void AppendQueueFilterQuery(StringBuilder urlBuilder, int queueOption, string encodedQueues)
|
||||
{
|
||||
if (queueOption != 0)
|
||||
urlBuilder.Append("&queueoption=").Append(queueOption);
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(encodedQueues))
|
||||
urlBuilder.Append("&queues=").Append(encodedQueues);
|
||||
}
|
||||
|
||||
private async Task<Dictionary<string, int>> FetchTicketOverviewCountsAsync(
|
||||
string sid,
|
||||
string scope,
|
||||
@@ -910,15 +947,20 @@ namespace C4IT.DataHistoryProvider
|
||||
{
|
||||
try
|
||||
{
|
||||
var keyParam = requestedKeys != null && requestedKeys.Count > 0
|
||||
? HttpUtility.UrlEncode(string.Join(",", requestedKeys))
|
||||
: null;
|
||||
var urlBuilder = new StringBuilder(constUrlGetTicketOverviewCounts);
|
||||
urlBuilder.Append("?sid=").Append(HttpUtility.UrlEncode(sid));
|
||||
urlBuilder.Append("&scope=").Append(HttpUtility.UrlEncode(scope ?? string.Empty));
|
||||
|
||||
var url = string.Format(constUrlGetTicketOverviewCounts, HttpUtility.UrlEncode(sid), scope, keyParam ?? string.Empty);
|
||||
if (string.IsNullOrWhiteSpace(keyParam))
|
||||
if (requestedKeys != null && requestedKeys.Count > 0)
|
||||
{
|
||||
url = $"m42Services/api/c4itf4sdwebapi/getticketoverviewcounts?sid={HttpUtility.UrlEncode(sid)}&scope={scope}";
|
||||
urlBuilder.Append("&keys=").Append(HttpUtility.UrlEncode(string.Join(",", requestedKeys)));
|
||||
}
|
||||
|
||||
var queueOption = GetActivityQueueOption();
|
||||
var encodedQueues = queueOption != 0 ? GetEncodedActivityQueues() : null;
|
||||
AppendQueueFilterQuery(urlBuilder, queueOption, encodedQueues);
|
||||
|
||||
var url = urlBuilder.ToString();
|
||||
var wc = await GetWebClient(requestInfo, token);
|
||||
var res = await wc.HttpEnh.GetAsync(url, token);
|
||||
if (token.IsCancellationRequested)
|
||||
@@ -1062,13 +1104,17 @@ namespace C4IT.DataHistoryProvider
|
||||
return new List<cF4sdApiSearchResultRelation>();
|
||||
|
||||
var scope = useRoleScope ? "role" : "personal";
|
||||
var url = string.Format(
|
||||
constUrlGetTicketOverviewRelations,
|
||||
HttpUtility.UrlEncode(sid),
|
||||
scope,
|
||||
HttpUtility.UrlEncode(key),
|
||||
Math.Max(0, count)
|
||||
);
|
||||
var urlBuilder = new StringBuilder(constUrlGetTicketOverviewRelations);
|
||||
urlBuilder.Append("?sid=").Append(HttpUtility.UrlEncode(sid));
|
||||
urlBuilder.Append("&scope=").Append(HttpUtility.UrlEncode(scope));
|
||||
urlBuilder.Append("&key=").Append(HttpUtility.UrlEncode(key));
|
||||
urlBuilder.Append("&count=").Append(Math.Max(0, count));
|
||||
|
||||
var queueOption = GetActivityQueueOption();
|
||||
var encodedQueues = queueOption != 0 ? GetEncodedActivityQueues() : null;
|
||||
AppendQueueFilterQuery(urlBuilder, queueOption, encodedQueues);
|
||||
|
||||
var url = urlBuilder.ToString();
|
||||
|
||||
var wc = await GetWebClient(requestInfo, Token);
|
||||
var res = await wc.HttpEnh.GetAsync(url, Token);
|
||||
|
||||
Reference in New Issue
Block a user