public override Task <Reply> DeleteStudent(StudentLookupModel request, ServerCallContext context)
        {
            var s = _context.Students.Find(request.StudentId);

            if (s == null)
            {
                return(Task.FromResult(
                           new Reply()
                {
                    Result = $"Student with ID {request.StudentId} cannot be found.",
                    IsOk = false
                }
                           ));
            }

            _logger.LogInformation("Delete Student");

            try
            {
                _context.Students.Remove(s);
                var returnVal = _context.SaveChanges();
            }
            catch (Exception ex)
            {
                _logger.LogInformation(ex.ToString());
            }

            return(Task.FromResult(
                       new Reply()
            {
                Result = $"Student with ID {request.StudentId} was successfully deleted.",
                IsOk = true
            }
                       ));
        }
示例#2
0
        public async Task <string> GetStudentByID(int id)
        {
            var studentClient = new RemoteStudent.RemoteStudentClient(channel);

            var studentInput = new StudentLookupModel {
                StudentId = id
            };
            var studentReply = await studentClient.GetStudentInfoAsync(studentInput);

            //  Console.WriteLine($"{studentReply.FirstName} { studentReply.LastName}");

            // var name =

            return(studentReply.LastName + " " + studentReply.FirstName);


            //AppContext.SetSwitch(
            //   "System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport",
            //   true);

            //var httpClient = new HttpClient();
            //httpClient.BaseAddress = new Uri("http://localhost:50051");

            //var client =  Grpc.Net.Client.GrpcChannel    GrpcClient.Create<grpcGreeter.Greeter.GreeterClient>(httpClient);
            //grpcGreeter.HelloReply reply = await client.SayHelloAsync(new grpcGreeter.HelloRequest() { Name = name });
            //return reply.Message;
        }
示例#3
0
        static async Task Main(string[] args)
        {
            StudentModel       student;
            StudentLookupModel sid;
            string             input;

            var channel       = GrpcChannel.ForAddress("https://localhost:5001");
            var studentClient = new Student.StudentClient(channel);

            Console.WriteLine("(1) INSPECT STUDENT\n(2) ALL STUDENTS\n(3) STUDENTS FROM FILE");
            input = Console.ReadLine();
            Console.WriteLine("----- ALL STUDENT IDS -----");
            using (var requestAllStudentIds = studentClient.GetAllStudentIds(new EmptyRequest()))
            {
                while (await requestAllStudentIds.ResponseStream.MoveNext())
                {
                    sid = requestAllStudentIds.ResponseStream.Current;
                    Console.Write($"{sid.Id}, ");
                }
            }
            Console.WriteLine("\n---------------------------------\n");
            Console.WriteLine("SELECT STUDENT ID: ");
            int id = Convert.ToInt32(Console.ReadLine());

            Console.Clear();
            StudentLookupModel requestStudent = new StudentLookupModel {
                Id = id
            };

            student = await studentClient.GetStudentInfoAsync(requestStudent);

            Console.WriteLine($"Student with id: {requestStudent.Id}");
            Console.WriteLine("---------------------------------");
            Console.WriteLine($"Name: {student.FirstName} {student.LastName} " +
                              $"\nGender: {student.Gender}" +
                              $"\nAge: {student.Age}" +
                              $"\nEmail: {student.EmailAddress}" +
                              $"\nPhone: {student.PhoneNumber}" +
                              $"\nSchool: {student.School}" +
                              $"\n---------------------------------");
            Console.ReadLine();
            Console.WriteLine("----- ALL STUDENTS -----");
            using (var requestAllStudents = studentClient.GetAllStudents(new EmptyRequest()))
            {
                while (await requestAllStudents.ResponseStream.MoveNext())
                {
                    student = requestAllStudents.ResponseStream.Current;
                    Console.WriteLine($"Name: {student.FirstName} {student.LastName} " +
                                      $"\nGender: {student.Gender}" +
                                      $"\nAge: {student.Age}" +
                                      $"\nEmail: {student.EmailAddress}" +
                                      $"\nPhone: {student.PhoneNumber}" +
                                      $"\nSchool: {student.School}" +
                                      $"\n---------------------------------");
                }
            }
            Console.ReadLine();
        }
示例#4
0
        static async Task deleteStudent(GrpcChannel channel, int id)
        {
            var client = new RemoteStudent.RemoteStudentClient(channel);

            var input = new StudentLookupModel {
                StudentId = id
            };
            var reply = await client.DeleteStudentAsync(input);

            Console.WriteLine(reply.Result);
        }
示例#5
0
        static async Task findStudentById(GrpcChannel channel, int id)
        {
            var client = new RemoteStudent.RemoteStudentClient(channel);

            var input = new StudentLookupModel {
                StudentId = id
            };
            var reply = await client.GetStudentInfoAsync(input);

            Console.WriteLine($"{reply.FirstName} {reply.LastName}");
        }
示例#6
0
        static async Task Main(string[] args)
        {
            var channel       = GrpcChannel.ForAddress("https://localhost:5001");
            var studentClient = new RemoteStudent.RemoteStudentClient(channel);
            var studentInput  = new StudentLookupModel {
                StudentId = 22
            };
            var studentReply = await studentClient.GetStudentInfoAsync(studentInput);

            Console.WriteLine($"{studentReply.FirstName} {studentReply.LastName}");
            Console.ReadLine();
        }
示例#7
0
        public override Task <StudentModel> GetStudentInfo(StudentLookupModel request, ServerCallContext context)
        {
            StudentModel output  = new StudentModel();
            var          student = _context.Students.Find(request.StudentId);

            _logger.LogInformation("Sending Student response");
            if (student != null)
            {
                output.StudentId = student.StudentId.ToString();
                output.FirstName = student.FirstName;
                output.LastName  = student.LastName;
                output.School    = student.School;
            }
            return(Task.FromResult(output));
        }
示例#8
0
        static async Task Main(string[] args)
        {
            //var input = new HelloRequest { Name = "Jane Bond" };

            //var channel = GrpcChannel.ForAddress("https://localhost:5001");
            //var client = new Greeter.GreeterClient(channel);

            //var reply = await client.SayHelloAsync(input);

            //Console.WriteLine(reply.Message);

            var channel       = GrpcChannel.ForAddress("https://localhost:5001");
            var studentClient = new RemoteStudent.RemoteStudentClient(channel);
            var studentInput  = new StudentLookupModel {
                StudentId = 33
            };
            var studentReply = await studentClient.GetStudentInfoAsync(studentInput);

            Console.WriteLine($"{studentReply.FirstName} {studentReply.LastName}");

            Console.ReadLine();
        }
示例#9
0
        public override Task <StudentModel> GetStudentInfo(StudentLookupModel request, ServerCallContext context)
        {
            StudentModel student = _db.GetStudent(request.Id);

            return(Task.FromResult(student));
        }