Exemplo n.º 1
0
        private static void FindCandidates(PersonRegistryClient client)
        {
            var info      = ReadPersonalInformation(false, false);
            var paramList = new PRPA_MT101306NO01ParameterList();

            var nameItems = CreateNameItems(info);

            if (nameItems.Count() > 0)
            {
                paramList.personName = CreatePersonNameParameter(nameItems);
            }

            if (IsDateSpecifiedAndValid(info.DateOfBirth))
            {
                paramList.personBirthTime = CreatePersonBirthTimeParameter(info.DateOfBirth);
            }

            var addressItems = CreateAddressItems(info);

            if (addressItems.Count() > 0)
            {
                paramList.identifiedPersonAddress = CreateIdentifiedPersonAddressParameter(addressItems);
            }

            var message = SetTopLevelFields(new PRPA_IN101305NO01 {
                controlActProcess = new PRPA_IN101305NO01QUQI_MT021001UV01ControlActProcess {
                    queryByParameter = new PRPA_MT101306NO01QueryByParameter {
                        parameterList = paramList
                    }
                }
            });

            FindCandidatesRequestSerializer.Serialize(Console.Out, message);
            Console.WriteLine("\n");
            PRPA_IN101306NO01 result = client.FindCandidates(message);

            FindCandidatesResponseSerializer.Serialize(Console.Out, result);
            Console.WriteLine("\n");

            Console.WriteLine("Found {0} persons:", result.controlActProcess.queryAck.resultTotalQuantity.value);
            if (result.controlActProcess.subject != null)
            {
                foreach (var subject in result.controlActProcess.subject)
                {
                    Console.WriteLine(PersonToString(subject.registrationEvent.subject1.identifiedPerson));
                }
            }
        }
Exemplo n.º 2
0
        internal static void FindCandidates(PersonRegistryClient client)
        {
            var info      = ReadPersonalInformation(false, true, false, true);
            var paramList = new PRPA_MT101306NO01ParameterList();

            // Search for people created within specified period
            //var requestCreation = false;
            //var resp = ReadLineAndTrim("Søke på creationTime (J/N): ");
            //if (resp.ToUpper() == "J") requestCreation = true;

            //if (requestCreation)
            //{
            //    var creationFrom = ReadLineAndTrim($"Fra dato ({DateFormat}): ");
            //    var creationTo = ReadLineAndTrim($"Til dato ({DateFormat}): ");

            //    var ds = new PRPA_MT101306NO01QueryByParameter();
            //    ds.
            //}


            var nameItems = CreateNameItems(info);
            var items     = nameItems.ToList();

            if (items.Any())
            {
                paramList.personName = CreatePersonNameParameter(items);
            }

            if (IsDateSpecifiedAndValid(info.dateOfBirth))
            {
                paramList.personBirthTime = CreatePersonBirthTimeParameter(info.dateOfBirth);
            }

            if (info.gender != string.Empty)
            {
                paramList.personAdministrativeGender = CreatePersonAdministrativeGenderParameter(info.gender);
            }

            var addressItems = CreateAddressItems(info);
            var addressList  = addressItems.ToList();

            if (addressList.Any())
            {
                foreach (var addrItem in addressList)
                {
                    paramList.identifiedPersonAddress = addrItem.Key switch
                    {
                        "private" => CreateIdentifiedPersonAddressParameter(addrItem.Value, PostalAddressUse.H),
                        "temp" => CreateIdentifiedPersonAddressParameter(addrItem.Value, PostalAddressUse.WP),
                        _ => paramList.identifiedPersonAddress
                    };
                }
            }


            var message = SetTopLevelFields(new PRPA_IN101305NO01
            {
                controlActProcess = new PRPA_IN101305NO01QUQI_MT021001UV01ControlActProcess
                {
                    queryByParameter = new PRPA_MT101306NO01QueryByParameter
                    {
                        parameterList = paramList
                    }
                }
            });

            FindCandidatesRequestSerializer.Serialize(Console.Out, message);
            Console.WriteLine("\n");
            PRPA_IN101306NO01 result = client.FindCandidatesAsync(message).Result;

            FindCandidatesResponseSerializer.Serialize(Console.Out, result);
            Console.WriteLine("\n");

            Console.WriteLine("Found {0} persons:", result.controlActProcess.queryAck.resultTotalQuantity.value);
            if (result.controlActProcess.subject != null)
            {
                foreach (var subject in result.controlActProcess.subject)
                {
                    Console.WriteLine(PersonToString(subject.registrationEvent.subject1.identifiedPerson));
                }
            }
        }