fix: read missing parameters from query
This commit is contained in:
@@ -94,16 +94,52 @@ namespace C4IT.F4SD
|
||||
return GetRequiredService<IJournalService>();
|
||||
}
|
||||
|
||||
private string GetQueryValue(string name)
|
||||
{
|
||||
return Request?.GetQueryNameValuePairs()
|
||||
.FirstOrDefault(pair => string.Equals(pair.Key, name, StringComparison.OrdinalIgnoreCase))
|
||||
.Value;
|
||||
}
|
||||
|
||||
private string QueryValue(string value, string name)
|
||||
{
|
||||
return GetQueryValue(name) ?? value ?? string.Empty;
|
||||
}
|
||||
|
||||
private int QueryValue(int value, string name)
|
||||
{
|
||||
return int.TryParse(GetQueryValue(name), out var parsed) ? parsed : value;
|
||||
}
|
||||
|
||||
private Guid QueryValue(Guid value, string name)
|
||||
{
|
||||
return Guid.TryParse(GetQueryValue(name), out var parsed) ? parsed : value;
|
||||
}
|
||||
|
||||
private Guid? QueryValue(Guid? value, string name)
|
||||
{
|
||||
return Guid.TryParse(GetQueryValue(name), out var parsed) ? parsed : value;
|
||||
}
|
||||
|
||||
private TEnum QueryValue<TEnum>(TEnum value, string name) where TEnum : struct
|
||||
{
|
||||
return Enum.TryParse<TEnum>(GetQueryValue(name), true, out var parsed) ? parsed : value;
|
||||
}
|
||||
|
||||
[Route("getDirectLinkCreateTicket"), HttpGet]
|
||||
public async Task<F4SDHelperService.DirectLink> getDirectLinkCreateTicket([FromUri] string sid = "", [FromUri] string assetname = "")
|
||||
{
|
||||
await Task.Delay(0);
|
||||
sid = QueryValue(sid, nameof(sid));
|
||||
assetname = QueryValue(assetname, nameof(assetname));
|
||||
return await _f4stHelperService.getDirectLinkCreateTicket(sid, assetname)
|
||||
?? new F4SDHelperService.DirectLink();
|
||||
}
|
||||
[Route("getDirectLinkF4SD"), HttpGet]
|
||||
public async Task<string> getDirectLinkF4SD([FromUri] Guid eoid, [FromUri] string type)
|
||||
{
|
||||
eoid = QueryValue(eoid, nameof(eoid));
|
||||
type = QueryValue(type, nameof(type));
|
||||
return await _f4stHelperService.getDirectLinkF4SD(eoid, type) ?? string.Empty;
|
||||
}
|
||||
|
||||
@@ -115,6 +151,10 @@ namespace C4IT.F4SD
|
||||
[FromUri] string queues = ""
|
||||
)
|
||||
{
|
||||
sid = QueryValue(sid, nameof(sid));
|
||||
hours = QueryValue(hours, nameof(hours));
|
||||
queueoption = QueryValue(queueoption, nameof(queueoption));
|
||||
queues = QueryValue(queues, nameof(queues));
|
||||
var decodedPairs = ParseQueues(queues);
|
||||
|
||||
// Nun weiterreichen an Service
|
||||
@@ -130,6 +170,7 @@ namespace C4IT.F4SD
|
||||
[Route("getTicketDetails"), HttpGet]
|
||||
public async Task<cF4SDTicket> getTicketDetails([FromUri] Guid objectId)
|
||||
{
|
||||
objectId = QueryValue(objectId, nameof(objectId));
|
||||
var tickets = await _f4stHelperService.getTicketDetails(new List<Guid>() { objectId });
|
||||
if (tickets?.Count > 0)
|
||||
return tickets[0];
|
||||
@@ -140,6 +181,7 @@ namespace C4IT.F4SD
|
||||
[Route("getTicketHistory"), HttpGet]
|
||||
public async Task<List<cTicketJournalItem>> getTicketHistory([FromUri] Guid objectId)
|
||||
{
|
||||
objectId = QueryValue(objectId, nameof(objectId));
|
||||
return await _f4stHelperService.GetJournalEntries(objectId) ?? new List<cTicketJournalItem>();
|
||||
}
|
||||
|
||||
@@ -152,6 +194,11 @@ namespace C4IT.F4SD
|
||||
[FromUri] string queues = ""
|
||||
)
|
||||
{
|
||||
sid = QueryValue(sid, nameof(sid));
|
||||
scope = QueryValue(scope, nameof(scope));
|
||||
keys = QueryValue(keys, nameof(keys));
|
||||
queueoption = QueryValue(queueoption, nameof(queueoption));
|
||||
queues = QueryValue(queues, nameof(queues));
|
||||
var parsedKeys = (keys ?? string.Empty)
|
||||
.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
|
||||
.Select(key => key.Trim())
|
||||
@@ -197,6 +244,12 @@ namespace C4IT.F4SD
|
||||
[FromUri] string queues = ""
|
||||
)
|
||||
{
|
||||
sid = QueryValue(sid, nameof(sid));
|
||||
scope = QueryValue(scope, nameof(scope));
|
||||
key = QueryValue(key, nameof(key));
|
||||
count = QueryValue(count, nameof(count));
|
||||
queueoption = QueryValue(queueoption, nameof(queueoption));
|
||||
queues = QueryValue(queues, nameof(queues));
|
||||
var decodedQueues = ParseQueues(queues);
|
||||
return await _f4stHelperService.getTicketOverviewRelations(sid, scope, key, count, queueoption, decodedQueues)
|
||||
?? new List<F4SDHelperService.TicketOverviewRelationDto>();
|
||||
@@ -216,6 +269,9 @@ namespace C4IT.F4SD
|
||||
public async Task<EntityEnumeration> getPickup([FromUri] string name, [FromUri] EntityEnumerationVisibilityMode mode = EntityEnumerationVisibilityMode.None, [FromUri] Int32 group = -1)
|
||||
{
|
||||
await Task.Delay(0);
|
||||
name = QueryValue(name, nameof(name));
|
||||
mode = QueryValue(mode, nameof(mode));
|
||||
group = QueryValue(group, nameof(group));
|
||||
EntityEnumeration enumerationTemp = GetEnumeration(name, mode);
|
||||
var vals = enumerationTemp.Values;
|
||||
|
||||
@@ -253,6 +309,9 @@ namespace C4IT.F4SD
|
||||
[Route("getRoleMemberships")]
|
||||
public async Task<object> getRoleMemberships([FromUri] string sid = "", [FromUri] string upn = "", [FromUri] Guid? id = null)
|
||||
{
|
||||
sid = QueryValue(sid, nameof(sid));
|
||||
upn = QueryValue(upn, nameof(upn));
|
||||
id = QueryValue(id, nameof(id));
|
||||
var filter = "";
|
||||
|
||||
if (id != null && id.Value != Guid.Empty)
|
||||
@@ -415,6 +474,7 @@ namespace C4IT.F4SD
|
||||
try
|
||||
{
|
||||
await Task.Delay(0);
|
||||
debug = QueryValue(debug, nameof(debug));
|
||||
DefaultLogger.Manager.Level = debug == "1" || debug.Equals("true", StringComparison.OrdinalIgnoreCase) ? LogLevels.Debug : LogLevels.Info;
|
||||
return DefaultLogger.Manager.Level.ToString();
|
||||
}
|
||||
@@ -434,6 +494,9 @@ namespace C4IT.F4SD
|
||||
{
|
||||
try
|
||||
{
|
||||
download = QueryValue(download, nameof(download));
|
||||
count = QueryValue(count, nameof(count));
|
||||
filter = QueryValue(filter, nameof(filter));
|
||||
var response = _f4stHelperService.privGetLog(download, count, Request, filter);
|
||||
if (response == null)
|
||||
return new StatusCodeResult(HttpStatusCode.NoContent);
|
||||
|
||||
Reference in New Issue
Block a user