public async Task <ActionResult> Post([FromBody] CircleUpdateDto model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!await this.MatchAppUserWithToken(model.AppUserId)) { return(Unauthorized()); } var newCircle = this._mapper.Map <Circle>(model); var ownerUser = await _appUserRepo.GetAppUser(model.AppUserId); if (ownerUser == null) { _logger.LogError("User not found: " + model.AppUserId); return(NotFound("ユーザーが見つかりません")); } newCircle.CircleMemberList = new List <CircleMember>() { new CircleMember() { AppUserId = model.AppUserId, Role = CircleRoleEnum.OWNER, CircleId = newCircle.Id } }; _repo.Add(newCircle); await _repo.SaveAll(); return(CreatedAtRoute("GetCircle", new { id = newCircle.Id }, _mapper.Map <CircleForReturnDto>(newCircle))); }
public async Task <ActionResult> Put([FromBody] CircleUpdateDto model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var circleFromRepo = await this._repo.GetCircle((int)model.Id); if (circleFromRepo == null) { return(NotFound()); } if (!await _repo.CheckUpdatePermission(model.AppUserId, (int)model.Id)) { return(Unauthorized()); } if (!model.ApprovalRequired && circleFromRepo.ApprovalRequired) { await _repo.ApproveAll(circleFromRepo.Id); } _mapper.Map(model, circleFromRepo); try { await _repo.SaveAll(); } catch (System.Exception ex) { this._logger.LogError("Failed to update circle: " + ex.Message); return(BadRequest("Failed to update circle: " + ex.Message)); } return(Ok()); }