Exemple #1
0
        public async Task <IActionResult> DeleteContestAsync(int id)
        {
            var userId = _authService.GetUserIdFromRequest(Request.HttpContext.User.Claims);

            var result = await _contestService.DeleteContestAsync(id, userId);

            switch (result.Error)
            {
            case DeleteContestResultType.Unauthorized:
                return(new ObjectResult(result)
                {
                    StatusCode = StatusCodes.Status401Unauthorized
                });

            case DeleteContestResultType.Forbiddance:
                return(new ObjectResult(result)
                {
                    StatusCode = StatusCodes.Status403Forbidden
                });

            case DeleteContestResultType.ContestNotFound:
                return(NotFound(result));

            case DeleteContestResultType.Error:
                return(BadRequest(result));

            case DeleteContestResultType.Ok:
                return(Ok(result));

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
        public async Task <IActionResult> DeleteContest([FromRoute] Guid id)
        {
            Guid.TryParse(User.FindFirst("id")?.Value, out var userId);

            var deleted = await _contestService.DeleteContestAsync(id, userId);

            if (deleted)
            {
                return(NoContent());
            }
            return(NotFound());
        }