Beispiel #1
0
        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());
        }
Beispiel #2
0
        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);
        }
Beispiel #5
0
 public async Task <Result> UpdateDeveloperAsync([FromBody] DeveloperUpdateDto developerDto, [FromRoute] Guid id)
 {
     developerDto.Id = id;
     return(GetResult(await _developerService.UpdateDeveloperAsync(developerDto)));
 }