public async Task <IActionResult> UpdateUserInformation(int id, UserInfoUpdateDTO userInfoDTO) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (userInfoDTO == null) { throw new ArgumentNullException(nameof(userInfoDTO)); } userInfoDTO.Username = userInfoDTO.Username.ToLower(); if (await _service.UserExistsAsync(userInfoDTO.Username)) { return(BadRequest("Podana nazwa użytkownika jest zajęta")); } try { var result = await _service.UpdateUserInfoAsync(id, userInfoDTO); } catch (DbUpdateConcurrencyException) { if (!(_service.UserExists(id))) { return(NotFound(Value)); } else { throw; } } return(Ok()); }
public async Task <int> UpdateUserInfoAsync(int id, UserInfoUpdateDTO userInfoDTO) { var userFromBase = _repository.GetUserFromBase(id); if (userInfoDTO.Firstname != "" && userInfoDTO.Firstname != null) { userInfoDTO.Firstname = userInfoDTO.Firstname; } else { userInfoDTO.Firstname = userFromBase.Firstname; } if (userInfoDTO.Lastname != "" && userInfoDTO.Firstname != null) { userInfoDTO.Lastname = userInfoDTO.Lastname; } else { userInfoDTO.Lastname = userFromBase.Lastname; } if (userInfoDTO.Username != "" && userInfoDTO.Firstname != null) { userInfoDTO.Username = userInfoDTO.Username; } else { userInfoDTO.Username = userFromBase.Username; } if (userInfoDTO.Email != "" && userInfoDTO.Firstname != null) { userInfoDTO.Email = userInfoDTO.Email; } else { userInfoDTO.Email = userFromBase.Email; } var userInfo = _mapper.Map(userInfoDTO, userFromBase); await _repository.UpdateUserInfoAsync(userInfo); return(userInfo.Id); }