public void AnswerVerifyAdultQuiz(IVerifyAdultQuizAnswers answers, Action <IVerifyAdultResult> callback) { VerifyAdultQuizAnswersSender.AnswerQuiz(logger, guestControllerClient, answers, delegate(IVerifyAdultResult r) { if (r.Success) { registrationProfile.IsAdultVerified = true; } callback(r); }); }
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()); return; } if (!ValidateAnswers(answers)) { callback(new VerifyAdultFailedInvalidDataResult()); return; } try { AdultVerificationQuizRequest adultVerificationQuizRequest = new AdultVerificationQuizRequest(); adultVerificationQuizRequest.applicationId = answers.Id; adultVerificationQuizRequest.answers = answers.Answers.Select((KeyValuePair <IVerifyAdultQuestion, string> keyValue) => 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 ex) { logger.Critical("Unhandled exception: " + ex); callback(MakeGenericFailure()); } }
private static bool ValidateAnswers(IVerifyAdultQuizAnswers answers) { int num = answers.Answers.Count((KeyValuePair <IVerifyAdultQuestion, string> pair) => pair.Key.Choices.Any((string choice) => choice == pair.Value)); return(num == answers.Answers.Count); }
public void AnswerVerifyAdultQuiz(IVerifyAdultQuizAnswers answers, Action <IVerifyAdultResult> callback) { throw new NotImplementedException(); }