Ejemplo n.º 1
0
        public async Task <IActionResult> DeleteProblemsAsync(long contestId, long id)
        {
            var userId = _authService.GetUserIdFromRequest(Request.HttpContext.User.Claims);

            var result = await _problemService.DeleteProblemAsync(contestId, userId, id);

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

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

            case DeleteProblemResultType.ProblemNotFound:
                return(NotFound(result));

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

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

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

            default:
                throw new ArgumentOutOfRangeException();
            }
        }