public ActionResult <Score> SubmitSolution(Guid id, [FromBody] MazeFE userSolution) { _logger.LogInformation("POST request to submit a solution for maze with Id {0}\n\n", id); IDictionary <string, object> payload; try { var accessToken = Request.Headers["Bearer"]; payload = Authorize(accessToken); } catch (ApiException e) { return(Unauthorized(new UnauthorizedError(e.Message))); } try { Score score = _mazeService.Submit(id, (string)payload["userId"], userSolution); return(Ok(score)); } catch (ApiException e) { if (e.StatusCode == 403) { return(StatusCode(403, new ForbiddenError(e.Message))); } return(BadRequest(new BadRequestError(e.Message))); } }