Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
 /// <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
     });
 }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        /// <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);
        }