public async Task <Result> UpdateDeveloperAsync(DeveloperUpdateDto developerDto) { var existDeveloper = await _developerRepository.ExistAsync(developerDto.Id); if (!existDeveloper) { return(new Result(Status.NotFund, $"Developer with {nameof(developerDto.Id)} does not exist")); } var existLogin = await _developerRepository.ExistByLoginAsync(developerDto.Login, developerDto.Id); if (existLogin) { return(new Result(Status.Conflict, $"Developer with {nameof(developerDto.Login)} already exist")); } var developer = await _developerRepository.GetByIdAsync(developerDto.Id); developer.SetData( name: developerDto.Name, login: developerDto.Login ); await _developerRepository.UpdateAsync(developer); return(new Result()); }
public async void UpdateDeveloperTest(Status expectedStatus) { var developerDto = new DeveloperUpdateDto { Id = Guid.NewGuid(), Name = RandomHelper.RandomString(), Login = RandomHelper.RandomString() }; var developer = EntitiesFactory.NewDeveloper(id: developerDto.Id).Get(); _developerRepository.Setup(d => d.ExistAsync(developerDto.Id)) .ReturnsAsync(expectedStatus != Status.NotFund); _developerRepository.Setup(d => d.GetByIdAsync(developerDto.Id)) .ReturnsAsync(developer); _developerRepository.Setup(d => d.ExistByLoginAsync(developerDto.Login, developerDto.Id)) .ReturnsAsync(expectedStatus == Status.Conflict); var service = new DeveloperService(_developerRepository.Object, _workRepository.Object, _mockyRepository.Object); var result = await service.UpdateDeveloperAsync(developerDto); Assert.Equal(expectedStatus, result.Status); if (expectedStatus == Status.Success) { _developerRepository.Verify(d => d.UpdateAsync(developer), Times.Once); Assert.Equal(developerDto.Name, developer.Name); Assert.Equal(developerDto.Login, developer.Login); } else { _developerRepository.Verify(d => d.UpdateAsync(developer), Times.Never); } }
public ActionResult UpdateDeveloper(Guid developerId, DeveloperUpdateDto developerUpdateDto) { var developerModelFromRepo = _repository.GetDeveloperById(developerId); if (developerModelFromRepo == null) { return(NotFound()); } _mapper.Map(developerUpdateDto, developerModelFromRepo); _repository.UpdateDeveloper(developerModelFromRepo); _repository.SaveChanges(); return(NoContent()); }
public async void UpdateDeveloperTest() { var developer = EntitiesFactory.NewDeveloper().Save(); var developerDto = new DeveloperUpdateDto { Id = developer.Id, Login = RandomHelper.RandomString(), Name = RandomHelper.RandomString() }; var(status, result) = await Request.PutAsync <ResultTest>(new Uri($"{Uri}/{developer.Id}"), developerDto); var developerDb = await DbContext.Developers.FindAsync(developerDto.Id); await DbContext.Entry(developerDb).ReloadAsync(); Assert.Equal(Status.Success, status); Assert.True(result.Success); Assert.Equal(developerDto.Login, developerDb.Login); Assert.Equal(developerDto.Name, developerDb.Name); }
public async Task <Result> UpdateDeveloperAsync([FromBody] DeveloperUpdateDto developerDto, [FromRoute] Guid id) { developerDto.Id = id; return(GetResult(await _developerService.UpdateDeveloperAsync(developerDto))); }