コード例 #1
0
ファイル: ProjectController.cs プロジェクト: Chators/Digger
        public async Task <IActionResult> CancelInvitationProject([FromBody] CancelInvitationProjectViewModel model)
        {
            if (model.UserInvitedId == 0)
            {
                model.UserInvitedId = Convert.ToInt32(HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier));
            }
            if (model.UserAuthorId == 0)
            {
                model.UserAuthorId = Convert.ToInt32(HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier));
            }

            if (!HttpContext.User.IsInRole("admin") && !_getAccessUser.UserCookieIs(HttpContext, model.UserAuthorId.ToString()) && !_getAccessUser.UserCookieIs(HttpContext, model.UserInvitedId.ToString()))
            {
                return(StatusCode(403, "Access Denied !"));
            }

            Result resultDeleteInvitationProject = await _projectGateway.DeleteUserInvitationInProject(model.UserAuthorId, model.UserInvitedId, model.ProjectId);

            if (resultDeleteInvitationProject.ErrorMessage == "No invitation with this user author id, user invited id and project id exists")
            {
                return(BadRequest(resultDeleteInvitationProject.ErrorMessage));
            }

            return(Ok("Cancel invitation success"));
        }