private void GetListParameters()

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('&');
        }