public async Task <IActionResult> AddScore(string username, [FromBody] AddScoreRequest request) { if (await _command.AddScoreToUser(username, request.Score)) { return(Ok()); } return(NotFound()); }
public AddScoreResponse Add([FromBody] AddScoreRequest request) { var response = new AddScoreResponse(); try { if (request == null) { throw new Exception("request is null - input format may be incorrect"); } if (request.publicKey != PublicKey) { throw new Exception("invalid access key"); } if (string.IsNullOrEmpty(request.game)) { throw new Exception("no game was specified"); } if (string.IsNullOrEmpty(request.name)) { throw new Exception("no player name was specified"); } if (request.score <= 0) { throw new Exception("invalid score: score must be >= 0"); } response.scoreId = highScores.AddScore(request.game, request.name, request.score, request.date); response.status = 0; } catch (Exception ex) { response.status = 1; response.message = ex.ToString(); } return(response); }
public ResultJson AddScoreRecord(AddScoreRequest request) { return(ScoreBiz.Instance.AddScoreRecord(request)); }
/// <inheritdoc /> /// <summary> /// Add a score to a line item. /// </summary> /// <param name="request">The request parameters.</param> /// <returns>The score that was added.</returns> protected override async Task <ActionResult <Score> > OnAddScoreAsync(AddScoreRequest request) { if (!int.TryParse(request.ContextId, out var contextId)) { var name = $"{nameof(request)}.{nameof(request.ContextId)}"; ModelState.AddModelError(name, $"The {name} field cannot be converted into a course id."); } if (!int.TryParse(request.LineItemId, out var lineItemId)) { var name = $"{nameof(request)}.{nameof(request.LineItemId)}"; ModelState.AddModelError(name, $"The {name} field cannot be converted into a gradebook column id."); } if (!int.TryParse(request.Score.UserId, out var personId)) { var name = $"{nameof(request)}.{nameof(request.Score)}.{nameof(request.Score.UserId)}"; ModelState.AddModelError(name, $"The {name} field cannot be converted into a user id."); } if (!ModelState.IsValid) { return(BadRequest(new ValidationProblemDetails(ModelState))); } if (!await _courseValidator.UserHasAccess(contextId)) { return(Unauthorized(new ProblemDetails { Title = "Not authorized", Detail = "User not authorized to access the requested course." })); } var course = await _context.GetCourseAsync(contextId); if (course == null) { return(NotFound(new ProblemDetails { Title = ReasonPhrases.GetReasonPhrase(StatusCodes.Status404NotFound), Detail = "Course not found" })); } if (course.GradebookColumns.All(c => c.Id != lineItemId)) { return(NotFound(new ProblemDetails { Title = ReasonPhrases.GetReasonPhrase(StatusCodes.Status404NotFound), Detail = "Gradebook column not found" })); } var gradebookColumn = await _context.GetGradebookColumnAsync(lineItemId); var person = await _context.GetPersonAsync(personId); if (person == null) { return(NotFound(new ProblemDetails { Title = ReasonPhrases.GetReasonPhrase(StatusCodes.Status404NotFound), Detail = "Person not found" })); } var gradebookRow = new GradebookRow { ActivityProgress = request.Score.ActivityProgress, Comment = request.Score.Comment, GradingProgress = request.Score.GradingProgress, PersonId = personId, ScoreGiven = request.Score.ScoreGiven, ScoreMaximum = request.Score.ScoreMaximum, TimeStamp = request.Score.TimeStamp }; gradebookColumn.Scores.Add(gradebookRow); await _context.SaveChangesAsync(); var url = Url.Link(LtiAdvantage.Constants.ServiceEndpoints.Ags.ScoreService, new { request.ContextId, lineItemId = request.LineItemId, scoreId = gradebookRow.Id }); // Save the score return(Created(url, request.Score)); }
protected override Task <ActionResult <Score> > OnAddScoreAsync(AddScoreRequest request) { var result = (ActionResult <Score>) new ObjectResult(request.Score); return(Task.FromResult(result)); }