public async Task <List <StudentListModel> > GetStudentsAsync()
        {
            var channel = new Channel(channelTarget, ChannelCredentials.Insecure);

            try
            {
                var client  = new StudentsGrpcService.StudentsGrpcServiceClient(channel);
                var request = new GetStudentsRequest();

                var response = await client.GetStudentsAsync(request);

                var students = response.Students.Select(s => new StudentListModel()
                {
                    Id          = new Guid(s.Id),
                    Address     = s.Address,
                    Name        = s.Name,
                    YearOfBirth = s.YearOfBirth
                }).ToList();


                return(students);
            }
            finally
            {
                await channel.ShutdownAsync();
            }
        }
        public async void DeleteStudentAsync(Guid id)
        {
            var channel = new Channel(channelTarget, ChannelCredentials.Insecure);

            try
            {
                var client  = new StudentsGrpcService.StudentsGrpcServiceClient(channel);
                var request = new DeleteStudentRequest()
                {
                    Id = id.ToString()
                };

                await client.DeleteStudentAsync(request);
            }
            finally
            {
                await channel.ShutdownAsync();
            }
        }
        public async Task <StudentDetailsModel> GetStudentDetailsAsync(Guid id)
        {
            var channel = new Channel(channelTarget, ChannelCredentials.Insecure);

            try
            {
                var client  = new StudentsGrpcService.StudentsGrpcServiceClient(channel);
                var request = new GetStudentDetailsRequest()
                {
                    Id = id.ToString()
                };

                var student = await client.GetStudentDetailsAsync(request);

                var studentModel = new StudentDetailsModel()
                {
                    Id          = Guid.Parse(student.Id),
                    Name        = student.Name,
                    Address     = student.Address,
                    YearOfBirth = student.YearOfBirth,
                    Grades      = student.Grades.Select(g => new GradeModel()
                    {
                        CourseName = g.CourseName,
                        CourseId   = Guid.Parse(g.CourseId),
                        Marks      = g.Marks.ToList()
                    }).ToList()
                };


                return(studentModel);
            }
            finally
            {
                await channel.ShutdownAsync();
            }
        }