in src/clis/vz/commands/person_command.cs [346:420]
private void GetListParameters(string kind, out string path, out string message, out string query, out string arrayName, out string idName)
{
var groupKind = _values.GetOrDefault("person.group.kind", "large");
if (groupKind != "large" && groupKind != "dynamic")
{
_values.AddThrowError(
"ERROR:", $"Unknown group kind '{groupKind}'!", "",
"USE:", $"{Program.Name} person [...] list --group kind large",
$"{Program.Name} person [...] list --group kind dynamic",
"SEE:", $"{Program.Name} help person group");
}
var groupId = _values.GetOrDefault("person.group.id", null);
var personId = _values.GetOrDefault("person.id", null);
var listPersonGroups = kind == "persongroups";
var listPersons = kind == "persons";
var listFaces = kind == "personfaces";
if ((listPersons || listFaces) && string.IsNullOrEmpty(groupId) && groupKind == "large")
{
_values.AddThrowError(
"WARNING:", $"Cannot list {groupKind} {kind}; group id required!", "",
"USE:", $"{Program.Name} person [...] --group id ID",
"SEE:", $"{Program.Name} help person group id");
}
else if (listFaces && string.IsNullOrEmpty(personId))
{
_values.AddThrowError(
"WARNING:", $"Cannot list person faces; person id required!", "",
"USE:", $"{Program.Name} person [...] --person id ID",
"SEE:", $"{Program.Name} help person id");
}
path = "";
message = "";
arrayName = null;
idName = null;
if (listPersonGroups)
{
path = $"{groupKind}persongroups";
message = $"Listing {groupKind} person groups ...";
arrayName = null;
idName = $"{groupKind}PersonGroupId";
}
else if (listPersons)
{
path = $"{groupKind}persongroups/{groupId}/persons";
message = $"Listing {groupKind} person group persons ...";
arrayName = groupKind == "large" ? null : "personIds";
idName = groupKind == "large" ? "personId" : null;
}
else if (listFaces)
{
path = $"{groupKind}persongroups/{groupId}/persons/{personId}";
message = $"Listing {groupKind} person group person faces ...";
arrayName = groupKind == "large" ? "persistedFaceIds" : "personIds";
idName = null;
}
else
{
_values.AddThrowError(
"WARNING:", $"Couldn't find resource type to list!", "",
"SEE:", $"{Program.Name} help person");
}
var top = _values.GetOrEmpty("person.top");
var skip = _values.GetOrEmpty("person.skip");
query = "";
if (!string.IsNullOrEmpty(skip)) query += $"&skip={skip}";
if (!string.IsNullOrEmpty(top)) query += $"&top={top}";
query = query.Trim('&');
}