コード例 #1
0
        public async Task update_should_modify_existing_teacher()
        {
            var client = _factory.CreateClient();

            var request = new EditTeacherRequest()
            {
                Id        = 1,
                Firstname = "Daniel",
                Lastname  = "Diaz",
                SchoolId  = 1
            };

            var httpsContent = new StringContent(JsonConvert.SerializeObject(request),
                                                 Encoding.UTF8, "application/json");
            var response = await client.PutAsync("/api/teachers", httpsContent);

            response.ShouldNotBeNull();
            response.EnsureSuccessStatusCode();

            var responseContent = await response.Content.ReadAsStringAsync();

            var responseEntity = JsonConvert.DeserializeObject <Teacher>(responseContent);

            responseEntity.ShouldNotBeNull();
            responseEntity.Firstname.ShouldBe("Daniel");
            responseEntity.Id.ShouldBe(1);
            responseEntity.Lastname.ShouldBe("Diaz");
        }
コード例 #2
0
        public Teacher Map(EditTeacherRequest request)
        {
            if (request == null)
            {
                return(null);
            }

            var teacher = new Teacher
            {
                Id        = request.Id,
                Firstname = request.Firstname,
                Lastname  = request.Lastname,
                SchoolId  = request.SchoolId,
            };

            return(teacher);
        }
コード例 #3
0
        public async Task <TeacherResponse> EditTeacherAsync(EditTeacherRequest request)
        {
            var existingRecord = _teacherRepository.ReadOnlyGetByIdAsync(request.Id);

            if (existingRecord == null)
            {
                throw new ArgumentException($"Entity with {request.Id} is not present");
            }

            var entity = _teacherMapper.Map(request);
            var result = _teacherRepository.Update(entity);

            await _teacherRepository.UnitOfWork.SaveChangesAsync();

            var editedTeacher = await _teacherRepository.ReadOnlyGetByIdAsync(result.Id);

            return(_teacherMapper.Map(editedTeacher));
        }
コード例 #4
0
        public async Task editTeacher_should_correctly_edit_entity()
        {
            var teacher = new EditTeacherRequest()
            {
                Id        = 3,
                Firstname = "Jan",
                Lastname  = "Parson",
                ClassIds  = null,
                CourseIds = null,
                SchoolId  = 1
            };

            var editedTeacher =
                await _sut.EditTeacherAsync(teacher);

            editedTeacher.ShouldNotBeNull();
            editedTeacher.Id.ShouldBe(teacher.Id);
            editedTeacher.Firstname.ShouldBe(teacher.Firstname);
        }
コード例 #5
0
        public async Task <IActionResult> Put(EditTeacherRequest request)
        {
            var result = await _teacherService.EditTeacherAsync(request);

            return(Ok(result));
        }