Пример #1
0
        private async Task Read(bool error = false)
        {
            if (error)
            {
                Error();
            }
            Console.WriteLine("    Read    ");
            Console.WriteLine("++++++++++++++");
            Console.WriteLine("");
            Console.WriteLine("Do you want to search by agent (1) name or (2) contact number?");
            var updateType = Console.ReadLine();

            Console.WriteLine();

            if (int.TryParse(updateType, out int type))
            {
                switch (type)
                {
                case 1:
                    //Search by name
                    Console.WriteLine("Enter the name to search for:");
                    var searchName = Console.ReadLine();
                    var request    = new ReadAgentRequest {
                        Name = searchName.Trim()
                    };
                    var channel = GrpcChannel.ForAddress("https://localhost:5001");
                    var client  = new AgentManagerService.AgentManagerServiceClient(channel);
                    using (var reply = client.ReadList(request))
                    {
                        if (reply != null)
                        {
                            while (await reply.ResponseStream.MoveNext())
                            {
                                var current = reply.ResponseStream.Current;
                                Console.WriteLine($"{current.Name} {current.ContactNumber}");
                            }
                        }
                    }
                    break;

                case 2:
                    //Search by contact
                    Console.WriteLine("Enter the contact number to search for:");
                    var contactNumber = Console.ReadLine();
                    if (int.TryParse(contactNumber, out int contact))
                    {
                        var request2 = new ReadAgentRequest {
                            ContactNumber = contact
                        };
                        var channel2 = GrpcChannel.ForAddress("https://localhost:5001");
                        var client2  = new AgentManagerService.AgentManagerServiceClient(channel2);
                        var reply    = client2.ReadSingle(request2);
                        if (reply != null)
                        {
                            await PrintResults($"{reply.Id} {reply.Name} {reply.ContactNumber}");
                        }
                    }
                    break;
                }
                Console.WriteLine("Press 'Enter' to continue...");
                Console.ReadLine();
                await LoadMenu();
            }
        }