public HttpResponseMessage Post(string quizid, [FromBody] AttemptRequest attemptReq) { var quiz = quizRepo.FindQuiz(quizid); if (quiz == null) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } if (attemptReq == null || !attemptReq.IsValid()) { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } var attempt = quiz.CreateNewAttempt(attemptReq.Email); attemptsRepo.StoreAttempt(quizid, attempt); var response = Request.CreateResponse(HttpStatusCode.OK, attempt); response.Headers.Location = new Uri(Request.RequestUri, Url.Route("getattempt", new { quizid = quizid, attemptid = attempt.Id })); return(response); }
/// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='quizid'> /// </param> /// <param name='attemptReq'> /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <Attempt> StartAttemptAsync(this IQuizAPIClient operations, string quizid, AttemptRequest attemptReq, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.StartAttemptWithHttpMessagesAsync(quizid, attemptReq, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
/// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='quizid'> /// </param> /// <param name='attemptReq'> /// </param> public static Attempt StartAttempt(this IQuizAPIClient operations, string quizid, AttemptRequest attemptReq) { return(Task.Factory.StartNew(s => ((IQuizAPIClient)s).StartAttemptAsync(quizid, attemptReq), operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult()); }