Implement queue-first curation workflow
This commit is contained in:
@@ -11,20 +11,14 @@ public sealed class TableContextUrlSerializer
|
||||
private const string RollJumpKey = "roll";
|
||||
private const string ResultIdKey = "result";
|
||||
private const string ModeKey = "mode";
|
||||
private const string QueueScopeKey = "scope";
|
||||
|
||||
public TableContextSnapshot Parse(string uri)
|
||||
{
|
||||
var currentUri = new Uri(uri, UriKind.Absolute);
|
||||
var query = QueryHelpers.ParseQuery(currentUri.Query);
|
||||
|
||||
return new TableContextSnapshot(
|
||||
ReadValue(query, TableKey),
|
||||
ReadValue(query, GroupKey),
|
||||
ReadValue(query, ColumnKey),
|
||||
ReadValue(query, RollBandKey),
|
||||
ReadInt(query, RollJumpKey),
|
||||
ReadInt(query, ResultIdKey),
|
||||
ReadMode(ReadValue(query, ModeKey)));
|
||||
return new TableContextSnapshot(ReadValue(query, TableKey), ReadValue(query, GroupKey), ReadValue(query, ColumnKey), ReadValue(query, RollBandKey), ReadInt(query, RollJumpKey), ReadInt(query, ResultIdKey), ReadMode(ReadValue(query, ModeKey)), ReadValue(query, QueueScopeKey));
|
||||
}
|
||||
|
||||
public string BuildRelativeUri(string basePath, TableContextSnapshot context)
|
||||
@@ -37,10 +31,9 @@ public sealed class TableContextUrlSerializer
|
||||
AddIfPresent(parameters, RollJumpKey, context.RollJump?.ToString());
|
||||
AddIfPresent(parameters, ResultIdKey, context.ResultId?.ToString());
|
||||
AddIfPresent(parameters, ModeKey, WriteMode(context.Mode));
|
||||
AddIfPresent(parameters, QueueScopeKey, context.QueueScope);
|
||||
|
||||
return parameters.Count == 0
|
||||
? basePath
|
||||
: QueryHelpers.AddQueryString(basePath, parameters);
|
||||
return parameters.Count == 0 ? basePath : QueryHelpers.AddQueryString(basePath, parameters);
|
||||
}
|
||||
|
||||
private static void AddIfPresent(IDictionary<string, string?> parameters, string key, string? value)
|
||||
@@ -52,9 +45,7 @@ public sealed class TableContextUrlSerializer
|
||||
}
|
||||
|
||||
private static string? ReadValue(IReadOnlyDictionary<string, Microsoft.Extensions.Primitives.StringValues> query, string key) =>
|
||||
query.TryGetValue(key, out var value)
|
||||
? value.ToString()
|
||||
: null;
|
||||
query.TryGetValue(key, out var value) ? value.ToString() : null;
|
||||
|
||||
private static int? ReadInt(IReadOnlyDictionary<string, Microsoft.Extensions.Primitives.StringValues> query, string key)
|
||||
{
|
||||
@@ -65,18 +56,18 @@ public sealed class TableContextUrlSerializer
|
||||
private static TableContextMode? ReadMode(string? value) =>
|
||||
value?.Trim().ToLowerInvariant() switch
|
||||
{
|
||||
"reference" => TableContextMode.Reference,
|
||||
"curation" => TableContextMode.Curation,
|
||||
"reference" => TableContextMode.Reference,
|
||||
"curation" => TableContextMode.Curation,
|
||||
"diagnostics" => TableContextMode.Diagnostics,
|
||||
_ => null
|
||||
_ => null
|
||||
};
|
||||
|
||||
private static string? WriteMode(TableContextMode? mode) =>
|
||||
mode switch
|
||||
{
|
||||
TableContextMode.Reference => "reference",
|
||||
TableContextMode.Curation => "curation",
|
||||
TableContextMode.Reference => "reference",
|
||||
TableContextMode.Curation => "curation",
|
||||
TableContextMode.Diagnostics => "diagnostics",
|
||||
_ => null
|
||||
_ => null
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user