Пример #1
0
        public static void RunPerformanceTest(PersonRegistryClient client)
        {
            var sw = new Stopwatch();

            sw.Start();
            client.GetDemographicsAsync(CreateGetDemographicsRequest(new II(IdNumberOid.FhNumber, CreateRandomFhNumber())));
            sw.Stop();
            Console.WriteLine("Initial request: " + sw.Elapsed);

            sw.Restart();
            const int numRequests = 1000;

            for (var i = 0; i < numRequests; ++i)
            {
                client.GetDemographicsAsync(CreateGetDemographicsRequest(new II(IdNumberOid.FhNumber, CreateRandomFhNumber())));
            }
            sw.Stop();
            Console.WriteLine("{0} subsequent requests: {1} ({2} ms per request)", numRequests, sw.Elapsed, sw.ElapsedMilliseconds / numRequests);

            sw.Restart();
            const int numIndividualRequests = 100;

            for (var i = 0; i < numIndividualRequests; ++i)
            {
                using (var c = Program.CreateClient())
                {
                    c.GetDemographicsAsync(CreateGetDemographicsRequest(new II(IdNumberOid.FhNumber, CreateRandomFhNumber())));
                }
            }
            sw.Stop();
            Console.WriteLine("{0} individual requests: {1} ({2} ms per request)", numIndividualRequests, sw.Elapsed, sw.ElapsedMilliseconds / numIndividualRequests);

            const int numThreads = 20;
            var       threads    = new Thread[numThreads];

            for (int i = 0; i < numThreads; ++i)
            {
                threads[i] = new Thread(ThreadTester);
                threads[i].Start(i);
            }
            foreach (var thread in threads)
            {
                thread.Join();
            }
        }
Пример #2
0
        internal static void GetDemographics(PersonRegistryClient client)
        {
            string idNumber = ReadLineAndTrim("Enter id number: ");

            if (string.IsNullOrWhiteSpace(idNumber))
            {
                return;
            }

            var id = new II {
                root = GetIdOid(idNumber.Trim()), extension = idNumber.Trim()
            };
            PRPA_IN101307NO01 request = CreateGetDemographicsRequest(id);

            GetDemographicsRequestSerializer.Serialize(Console.Out, request);
            Console.WriteLine("\n");
            PRPA_IN101308NO01 response = client.GetDemographicsAsync(request).Result;

            GetDemographicsResponseSerializer.Serialize(Console.Out, response);
            Console.WriteLine("\n");

            string queryResponseCode = response.controlActProcess.queryAck.queryResponseCode.code;

            switch (queryResponseCode)
            {
            case QueryResponseCode.Ok:
                Console.WriteLine(PersonToString(response.controlActProcess.subject[0].registrationEvent.subject1
                                                 .identifiedPerson));
                break;

            case QueryResponseCode.NoResultsFound:
                Console.WriteLine("No results found");
                break;

            case QueryResponseCode.QueryParameterError:
                Console.WriteLine("Query parameter error");
                break;

            default:
                Console.WriteLine($"Unrecognized query response code: '{queryResponseCode}'");
                break;
            }
        }