public bool PostJellyVisionQuizResponse(string id, string referrerID, string responses, string personalityType, string encryptedToken) { const string logMethodName = ".PostJellyVisionQuizResponse(string id, string referrerID, string responses, string personalityType) - "; _log.Debug(logMethodName + "Begin Method"); _log.Debug(logMethodName + string.Format("id = [{0}], referrerID = [{1}], responses = [{2}], personalityType = [{3}]", id, referrerID, responses, personalityType)); try { bool toReturn = false; //allow all the origin url to avoid cross domain issue. if (WebOperationContext.Current != null) { WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Allow-Origin", "*"); } FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(encryptedToken); if (string.IsNullOrEmpty(ticket.ToString())) { _log.Debug("Something wrong during the decryption process!"); return(false); } //validate the request with the values extracted from the token if (!ticket.Expired && ticket.Name == id && ticket.UserData == "1") { JellyVisionQuizResponseModel jvqResponse = new JellyVisionQuizResponseModel(); //hardcoding the quizName for now. If we get another then we'll have to change this. jvqResponse.quizName = "Money Personality Quiz"; jvqResponse.Id = !string.IsNullOrWhiteSpace(id) ? int.Parse(id) : 0; jvqResponse.referrerID = referrerID; jvqResponse.responses = responses; jvqResponse.personalityType = personalityType; if (JellyVisionQuizResponseValidation.validateQuizResponseModel(jvqResponse)) { toReturn = _surveyAdapter.AddJellyVisionQuizResponse(jvqResponse); } } else { _log.Debug(logMethodName + "the request expired."); } _log.Debug(logMethodName + "End Method"); return(toReturn); } catch (Exception ex) { _log.Error(logMethodName + ": Exception => " + ex.ToString()); return(false); //throw new SurveyOperationException("Web Survey Service - Exception in ASA.Web.Services.SurveyService.PostJellyVisionQuizResponse()", ex); } }
/// <summary> /// JellyVisionQuizResponseModel to its data contract. /// </summary> /// <param name="response">The JellyVisionQuiz Response model </param> /// <returns></returns> public static JellyVisionQuizResponseContract ToDataContract(this JellyVisionQuizResponseModel response) { return(new JellyVisionQuizResponseContract() { MemberId = response.Id, QuizName = response.quizName, QuizResponse = response.responses, QuizResult = response.personalityType, QuizTakenSite = response.referrerID }); }
public static bool validateQuizResponseModel(JellyVisionQuizResponseModel quizResponseModel) { var validationResults = new List <ValidationResult>(); //validate quizResponseModel var validationContext = new ValidationContext(quizResponseModel, serviceProvider: null, items: null); bool isValid = System.ComponentModel.DataAnnotations.Validator.TryValidateObject(quizResponseModel, validationContext, validationResults, true); //validate quizResponseModel.quizName validationContext = new ValidationContext(quizResponseModel.quizName, serviceProvider: null, items: null); isValid &= System.ComponentModel.DataAnnotations.Validator.TryValidateObject(quizResponseModel.quizName, validationContext, validationResults, true); //validate quizResponseModel.referrerID validationContext = new ValidationContext(quizResponseModel.referrerID, serviceProvider: null, items: null); isValid &= System.ComponentModel.DataAnnotations.Validator.TryValidateObject(quizResponseModel.referrerID, validationContext, validationResults, true); //validate quizResponseModel.responses validationContext = new ValidationContext(quizResponseModel.responses, serviceProvider: null, items: null); isValid &= System.ComponentModel.DataAnnotations.Validator.TryValidateObject(quizResponseModel.responses, validationContext, validationResults, true); //validate quizResponseModel.personalityType validationContext = new ValidationContext(quizResponseModel.personalityType, serviceProvider: null, items: null); isValid &= System.ComponentModel.DataAnnotations.Validator.TryValidateObject(quizResponseModel.personalityType, validationContext, validationResults, true); return(isValid); }
/// <summary> /// Add the response. /// </summary> /// <param name="response">The JellyVision Quiz response model.</param> /// <returns>true/false</returns> public bool AddJellyVisionQuizResponse(JellyVisionQuizResponseModel response) { var result = IntegrationLoader.LoadDependency <ISaltServiceAgent>("saltServiceAgent").AddJellyVisionQuizResponse(response.ToDataContract()); return(result); }