Esempio n. 1
0
        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)));
        }
Esempio n. 2
0
        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());
        }