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(); } }