public async Task <ActionResult <IReadOnlyList <Teacher> > > GetAsync()
        {
            var spec = new TeacherWithCourseSpecification();
            var data = await _service.ListAsync(spec);

            return(Ok(data));
        }
        public async Task <ActionResult <IReadOnlyList <Teacher> > > GetCourseAsync(Guid id)
        {
            var spec    = new TeacherWithCourseSpecification(id);
            var teacher = await _service.GetModelWithSpec(spec);

            return(Ok(teacher));
        }
        public async Task <ActionResult <Student> > UpdateStudentAsync(Guid id, Teacher teacher)
        {
            if (id != teacher.Id)
            {
                return(BadRequest());
            }

            var spec = new TeacherWithCourseSpecification(id);
            var data = await _service.GetModelWithSpec(spec);

            if (data == null)
            {
                return(NotFound());
            }

            try
            {
                data = teacher;
                await _service.UpdateAsync(data);
            }
            catch (DbUpdateConcurrencyException)
            {
                var isExist = await _service.IsExists(data.Id);

                if (!isExist)
                {
                    return(NotFound());
                }
            }

            return(Ok(data));
        }