public void SendAdultVerificationQuiz(AdultVerificationQuizRequest request, Action <GuestControllerResult <AdultVerificationQuizResponse> > callback) { QueueItem item = CreateQueueItem("/client/{client-id}/guest/{swid}/adult-verification-quiz", HttpMethod.POST, request, GuestControllerAuthenticationType.AccessToken, callback); queue.Add(item); ExecuteNextCall(); }
public static void AnswerQuiz(AbstractLogger logger, IGuestControllerClient guestControllerClient, IVerifyAdultQuizAnswers answers, Action <IVerifyAdultResult> callback) { if (string.IsNullOrEmpty(answers.Id) || answers.Answers == null || answers.Answers.Count == 0) { callback(new VerifyAdultFailedMissingInfoResult()); } else if (!ValidateAnswers(answers)) { callback(new VerifyAdultFailedInvalidDataResult()); } else { try { AdultVerificationQuizRequest adultVerificationQuizRequest = new AdultVerificationQuizRequest(); adultVerificationQuizRequest.applicationId = answers.Id; adultVerificationQuizRequest.answers = (from keyValue in answers.Answers select new AdultVerificationQuizAnswer { choice = keyValue.Value, questionId = keyValue.Key.QuestionId }).ToList(); AdultVerificationQuizRequest request = adultVerificationQuizRequest; guestControllerClient.SendAdultVerificationQuiz(request, delegate(GuestControllerResult <AdultVerificationQuizResponse> r) { if (!r.Success) { callback(MakeGenericFailure()); } else if (r.Response.error != null) { callback(ParseError(r.Response)); } else if (r.Response.data == null) { callback(MakeGenericFailure()); } else { callback(new VerifyAdultResult(r.Response.data.verified, r.Response.data.maxAttempts)); } }); } catch (Exception arg) { logger.Critical("Unhandled exception: " + arg); callback(MakeGenericFailure()); } } }