public async Task <IActionResult> Register(int userId, [FromBody] JednostkaForRegisterDto jednostkaForRegisterDto) { if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) { return(Unauthorized()); } var parent = await _repo.GetJednostkaUser(userId, jednostkaForRegisterDto.ParentId); if (parent == null) { return(BadRequest("Nie znaleziono jednostki nadrzędnej")); } var jednostka = _mapper.Map <Jednostka>(jednostkaForRegisterDto); jednostka.DataModyfikacji = DateTime.Now; jednostka.Parent = parent; jednostka.UserId = userId; jednostka.IsMain = false; _repo.Add(jednostka); var jednostkaToReturn = _mapper.Map <JednostkaForListDto>(jednostka); jednostkaToReturn.Id = jednostka.Id; if (await _repo.SaveAll()) { return(CreatedAtRoute("GetJednostka", new { id = jednostka.Id }, jednostkaToReturn)); } throw new System.Exception("Dodanie jednostki nie powiodło się"); }
public async Task <IActionResult> UpdateUser(int id, [FromBody] UserForUpdateDto userForUpdateDto) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var currentUserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value); var userFromRepo = await _repo.GetUser(id); // TODO update jednostki main w jednostkach if (userFromRepo == null) { return(NotFound($"Nie znaleziono użytkownika o id {id}")); } if (currentUserId != userFromRepo.Id) { return(Unauthorized()); } _mapper.Map(userForUpdateDto, userFromRepo); if (await _repo.SaveAll()) { return(NoContent()); } throw new Exception($"Nie zmodyfikowano użytkownika {id}"); }