Beispiel #1
0
        private static async Task <int> Citizen(CitizenOptions opts)
        {
            var api = new NexusApi();

            if (opts.CitizenId == null)
            {
                var list = await api.GetCitizensAsync().ConfigureAwait(false);

                Console.WriteLine($"{list.Count:N0} citizens fetched");
                foreach (var citizen in list)
                {
                    Console.WriteLine($"{citizen.Id,6:D} {citizen.Name}");
                }
            }
            else
            {
                var details = await api.GetCitizenAsync(opts.CitizenId.Value).ConfigureAwait(false);

                if (details == null)
                {
                    Console.WriteLine($"Citizen {opts.CitizenId.Value} does not exist");
                    return(0);
                }

                Console.WriteLine($"Citizen {details.Id} fetched");

                var serialiser = new YamlDotNet.Serialization.Serializer();
                var yml        = serialiser.Serialize(details);
                Console.WriteLine(yml);
            }

            return(0);
        }
Beispiel #2
0
        private static async Task <int> Patient(PatientOptions opts)
        {
            var api = new NexusApi();

            var patient = (await api.GetPatients(opts.PatientId.ToString()).ConfigureAwait(false)).FirstOrDefault();

            if (patient == null)
            {
                Console.WriteLine($"Patient {opts.PatientId} does not exist");
                return(0);
            }

            var serialiser = new YamlDotNet.Serialization.Serializer();
            var yml        = serialiser.Serialize(patient);

            Console.WriteLine(yml);

            return(0);
        }
Beispiel #3
0
        private static async Task <int> Patients(PatientsOptions opts)
        {
            var api = new NexusApi();

            var filter = await api.FilterPatientsAsync(opts.CitizenId).ConfigureAwait(false);

            if (filter.TotalItems == 0)
            {
                Console.WriteLine("Citizen has no patients");
                return(1);
            }

            foreach (var page in filter.Pages)
            {
                var data = page.Links.FirstOrDefault(x => x.Key == "patientData");
                if (data.Value == null)
                {
                    Console.WriteLine("Unable to fetch a page of patients");
                    return(255);
                }

                var match = Regex.Match(data.Value?.Href ?? string.Empty, @"\?ids=(\d+(,\d+)*)");
                if (!match.Success)
                {
                    Console.WriteLine("Unable to determine patient ids");
                    return(255);
                }

                var idList = match.Groups[1].ToString();

                var patients = await api.GetPatients(idList).ConfigureAwait(false);

                foreach (var patient in patients)
                {
                    Console.WriteLine($"{patient.Id,6:D} {patient.FullReversedName}");
                }
            }

            return(0);
        }