public async Task <ActionResult <PersonResponseDTO> > UpdatePersonAsync([FromBody] PersonDTO personDto, [FromRoute] long id)
        {
            var person = await _personRepository.GetPersonAsync(id);

            if (person == null)
            {
                return(NotFound($"Person with id {id} not found"));
            }
            if (ModelState.IsValid)
            {
                person.Name        = personDto.Name;
                person.DisplayName = personDto.DisplayName;
                person.Skills.RemoveAll(e => e.PersonId == person.Id);

                AddSkills(person, personDto);

                await _personRepository.UpdateAsync();

                var updatedPersonDto = new PersonResponseDTO(person);

                return(Ok(updatedPersonDto));
            }

            return(BadRequest(ModelState));
        }
Example #2
0
 protected void AssertEqualPersons(PersonDTO personExpected, PersonResponseDTO personResult)
 {
     Assert.Equal(personExpected.Name, personResult.Name);
     Assert.Equal(personExpected.DisplayName, personResult.DisplayName);
     Assert.NotEmpty(personResult.Skills);
     for (int i = 0; i < personExpected.Skills.Count; i++)
     {
         Assert.Equal(personExpected.Skills[i].Name, personResult.Skills[i].Name);
         Assert.Equal(personExpected.Skills[i].Level, personResult.Skills[i].Level);
     }
 }
        public async Task <ActionResult <PersonResponseDTO> > GetPersonAsync([FromRoute] long id)
        {
            var person = await _personRepository.GetPersonAsync(id);

            if (person == null)
            {
                return(NotFound($"Person with id {id} not found"));
            }

            var personDto = new PersonResponseDTO(person);

            return(Ok(personDto));
        }
        public async Task <ActionResult <PersonResponseDTO> > CreatePersonAsync([FromBody] PersonDTO personDto)
        {
            if (ModelState.IsValid)
            {
                var person = new Person
                {
                    Name        = personDto.Name,
                    DisplayName = personDto.DisplayName,
                };

                AddSkills(person, personDto);

                await _personRepository.AddPersonAsync(person);

                var createdPersonDto = new PersonResponseDTO(person);
                return(Ok(createdPersonDto));
            }

            return(BadRequest(ModelState));
        }