public String GetUserAnswer(AnswerResult answerResult)
 {
     if (answerResult.LearnerResponse != null)
         return Uri.UnescapeDataString(answerResult.LearnerResponse.ToString());
     else
         return "";
 }
예제 #2
0
        public void CreateAnswerResultWithParameters()
        {
            const long ActivityAttemptId = 2349;
            const long ActivityPackageId = 83294;
            const string ActivityTitle = "Some Activity";
            long? interactionId = 12382;
            const CompletionStatus CompletionStatus = CompletionStatus.NotAttempted;
            const SuccessStatus SuccessStatus = SuccessStatus.Failed;
            var attemptResult = new AttemptResult();
            const string LearnerResponse = "C";
            const string CorrectResponse = "-328";
            InteractionType? learnerResponseType = Common.Models.Shared.Statistics.InteractionType.Numeric;
            float? scaledScore = 0.58f;
            float? minScore = 0;
            float? maxScore = 50;
            float? rawScore = 29;
           string primaryResourceFromManifest = "0.html";


            var answerResult = new AnswerResult(
                ActivityAttemptId,
                ActivityPackageId,
                ActivityTitle,
                interactionId,
                CompletionStatus,
                SuccessStatus,
                attemptResult,
                LearnerResponse,
                CorrectResponse,
                learnerResponseType,
                minScore,
                maxScore,
                rawScore,
                scaledScore,
                primaryResourceFromManifest);

            Assert.AreEqual(ActivityAttemptId, answerResult.ActivityAttemptId);
            Assert.AreEqual(ActivityPackageId, answerResult.ActivityPackageId);
            Assert.AreEqual(ActivityTitle, answerResult.ActivityTitle);
            Assert.AreEqual(interactionId, answerResult.InteractionId);
            Assert.AreEqual(CompletionStatus, answerResult.CompletionStatus);
            Assert.AreEqual(SuccessStatus, answerResult.SuccessStatus);
            Assert.AreSame(attemptResult, answerResult.AttemptResult);
            Assert.AreEqual(LearnerResponse, answerResult.LearnerResponse);
            Assert.AreEqual(CorrectResponse, answerResult.CorrectResponse);
            Assert.AreEqual(learnerResponseType, answerResult.LearnerResponseType);
            Assert.AreEqual(scaledScore, answerResult.ScaledScore);

        }
 public string GetUserAnswer(AnswerResult answerResult)
 {
     return answerResult.LearnerResponse != null ? Uri.UnescapeDataString(answerResult.LearnerResponse.ToString()) : string.Empty;
 }
예제 #4
0
 /// <summary>
 /// Return user score from AnswerResult
 /// </summary>
 /// <param name="answerResult">AnswerResult for question</param>
 /// <returns></returns>
 public String GetUserScoreForAnswer(AnswerResult answerResult)
 {
     if (answerResult.ScaledScore != null)
         {
             if (answerResult.ScaledScore.HasValue == true)
             return Math.Round((double)answerResult.ScaledScore, 2).ToString();
     }
     return "";
 }
예제 #5
0
 /// <summary>
 /// Return user answer from AnswerResult
 /// </summary>
 /// <param name="answerResult">AnswerResult for question</param>
 /// <returns></returns>
 public String GetUserAnswer(AnswerResult answerResult)
 {
     if (answerResult.LearnerResponse != null)
         return answerResult.LearnerResponse.ToString();
     else
         return "";
 }
예제 #6
0
파일: MlcProxy.cs 프로젝트: supermuk/iudico
        public IEnumerable<AnswerResult> GetAnswers(AttemptResult attemptResult)
        {
            List<AnswerResult> result = new List<AnswerResult>();
            LearningStoreJob job = LStore.CreateJob();
            AttemptItemIdentifier attemptId = new AttemptItemIdentifier(attemptResult.AttemptId);
            RequestInteractionResultsByAttempt(job, attemptId);
            DataTable dataTable = job.Execute<DataTable>();
            foreach (DataRow dataRow in dataTable.AsEnumerable())
            {
                ActivityAttemptItemIdentifier activityAttemptItemId;
                LStoreHelper.CastNonNull(dataRow[Schema.InteractionResultsByAttempt.ActivityAttemptId], out activityAttemptItemId);
                long activityAttemptId = activityAttemptItemId.GetKey();

                ActivityPackageItemIdentifier activityPackageItemId;
                LStoreHelper.CastNonNull(dataRow[Schema.InteractionResultsByAttempt.ActivityPackageId], out activityPackageItemId);
                long activityPackageId = activityPackageItemId.GetKey();

                String activityTitle;
                LStoreHelper.CastNonNull(dataRow[Schema.InteractionResultsByAttempt.ActivityTitle], out activityTitle);

                InteractionItemIdentifier interactionItemId;
                LStoreHelper.Cast(dataRow[Schema.InteractionResultsByAttempt.InteractionId], out interactionItemId);
                long? interactionId = null;
                if (interactionItemId != null)
                {
                    interactionId = interactionItemId.GetKey();
                }

                Microsoft.LearningComponents.CompletionStatus completionStatus;
                LStoreHelper.CastNonNull(dataRow[Schema.InteractionResultsByAttempt.CompletionStatus], out completionStatus);
                IUDICO.Common.Models.Shared.Statistics.CompletionStatus iudicoCompletionStatus = (IUDICO.Common.Models.Shared.Statistics.CompletionStatus)completionStatus;

                Microsoft.LearningComponents.SuccessStatus? successStatus;
                LStoreHelper.Cast(dataRow[Schema.InteractionResultsByAttempt.SuccessStatus], out successStatus);
                IUDICO.Common.Models.Shared.Statistics.SuccessStatus? iudicoSuccessStatus = (IUDICO.Common.Models.Shared.Statistics.SuccessStatus?)successStatus;

                bool? learnerResponseBool = null;
                LStoreHelper.Cast(dataRow[Schema.InteractionResultsByAttempt.LearnerResponseBool], out learnerResponseBool);

                string learnerResponseString = null;
                LStoreHelper.Cast(dataRow[Schema.InteractionResultsByAttempt.LearnerResponseString], out learnerResponseString);

                double? learnerResponseNumeric = null;
                LStoreHelper.Cast(dataRow[Schema.InteractionResultsByAttempt.LearnerResponseNumeric], out learnerResponseNumeric);

                object learnerResponse = null;
                if (learnerResponseBool != null)
                {
                    learnerResponse = learnerResponseBool;
                }
                if (learnerResponseString != null)
                {
                    learnerResponse = learnerResponseString;
                }
                if (learnerResponseNumeric != null)
                {
                    learnerResponse = learnerResponseNumeric;
                }

                string correctResponse;
                LStoreHelper.Cast(dataRow[Schema.InteractionResultsByAttempt.CorrectResponse], out correctResponse);

                Microsoft.LearningComponents.InteractionType? interactionType = null;
                LStoreHelper.Cast(dataRow[Schema.InteractionResultsByAttempt.InteractionType], out interactionType);
                IUDICO.Common.Models.Shared.Statistics.InteractionType? learnerResponseType = null;
                if (interactionType != null)
                {
                    learnerResponseType = (IUDICO.Common.Models.Shared.Statistics.InteractionType)interactionType;
                }
                
                float? scaledScore;
                LStoreHelper.Cast<float>(dataRow[Schema.InteractionResultsByAttempt.ScaledScore], out scaledScore);

                // Create AnswerResult object
                AnswerResult answerResult = new AnswerResult(activityAttemptId, activityPackageId, activityTitle, interactionId, iudicoCompletionStatus, iudicoSuccessStatus, attemptResult, learnerResponse, correctResponse, learnerResponseType, scaledScore);
                result.Add(answerResult);
            }

            return result;
        }
예제 #7
0
        /// <summary>
        /// Return maximum score from AnswerResult
        /// </summary>
        /// <param name="answerResult">AnswerResult for question</param>
        /// <returns></returns>
        public double GetMaxScoreForAnswer(AnswerResult answerResult)
        {
            if (answerResult.MaxScore.HasValue)
            {
                return answerResult.MaxScore.Value;
            }

            return 0;
        }
예제 #8
0
 /// <summary>
 /// Return user answer from AnswerResult
 /// </summary>
 /// <param name="answerResult">AnswerResult for question</param>
 /// <returns></returns>
 public string GetUserAnswer(AnswerResult answerResult)
 {
     return answerResult.LearnerResponse != null ? answerResult.LearnerResponse.ToString() : string.Empty;
 }
예제 #9
0
파일: MlcProxy.cs 프로젝트: supermuk/iudico
        public IEnumerable<AnswerResult> GetAnswers(AttemptResult attemptResult)
        {
            LearningStoreJob job = this.LStore.CreateJob();
            var attemptId = new AttemptItemIdentifier(attemptResult.AttemptId);
            this.RequestInteractionResultsByAttempt(job, attemptId);
            var dataTable = job.Execute<DataTable>();
            foreach (DataRow dataRow in dataTable.AsEnumerable())
            {
                ActivityAttemptItemIdentifier activityAttemptItemId;
                LStoreHelper.CastNonNull(
                    dataRow[Schema.InteractionResultsByAttempt.ActivityAttemptId], out activityAttemptItemId);
                long activityAttemptId = activityAttemptItemId.GetKey();

                ActivityPackageItemIdentifier activityPackageItemId;
                LStoreHelper.CastNonNull(
                    dataRow[Schema.InteractionResultsByAttempt.ActivityPackageId], out activityPackageItemId);
                long activityPackageId = activityPackageItemId.GetKey();

                string activityTitle;
                LStoreHelper.CastNonNull(dataRow[Schema.InteractionResultsByAttempt.ActivityTitle], out activityTitle);

                InteractionItemIdentifier interactionItemId;
                LStoreHelper.Cast(dataRow[Schema.InteractionResultsByAttempt.InteractionId], out interactionItemId);
                long? interactionId = null;
                if (interactionItemId != null)
                {
                    interactionId = interactionItemId.GetKey();
                }

                CompletionStatus completionStatus;
                LStoreHelper.CastNonNull(
                    dataRow[Schema.InteractionResultsByAttempt.CompletionStatus], out completionStatus);
                var iudicoCompletionStatus = (Common.Models.Shared.Statistics.CompletionStatus)completionStatus;

                SuccessStatus? successStatus;
                LStoreHelper.Cast(dataRow[Schema.InteractionResultsByAttempt.SuccessStatus], out successStatus);
                var iudicoSuccessStatus = (Common.Models.Shared.Statistics.SuccessStatus?)successStatus;

                bool? learnerResponseBool;
                LStoreHelper.Cast(
                    dataRow[Schema.InteractionResultsByAttempt.LearnerResponseBool], out learnerResponseBool);

                string learnerResponseString;
                LStoreHelper.Cast(
                    dataRow[Schema.InteractionResultsByAttempt.LearnerResponseString], out learnerResponseString);

                double? learnerResponseNumeric;
                LStoreHelper.Cast(
                    dataRow[Schema.InteractionResultsByAttempt.LearnerResponseNumeric], out learnerResponseNumeric);

                object learnerResponse = null;
                if (learnerResponseBool != null)
                {
                    learnerResponse = learnerResponseBool;
                }
                if (learnerResponseString != null)
                {
                    learnerResponse = learnerResponseString;
                }
                if (learnerResponseNumeric != null)
                {
                    learnerResponse = learnerResponseNumeric;
                }

                string correctResponse;
                LStoreHelper.Cast(dataRow[Schema.InteractionResultsByAttempt.CorrectResponse], out correctResponse);

                InteractionType? interactionType;
                LStoreHelper.Cast(dataRow[Schema.InteractionResultsByAttempt.InteractionType], out interactionType);
                Common.Models.Shared.Statistics.InteractionType? learnerResponseType = null;
                if (interactionType != null)
                {
                    learnerResponseType = (Common.Models.Shared.Statistics.InteractionType)interactionType;
                }

                float? minScore;
                LStoreHelper.Cast(dataRow[Schema.InteractionResultsByAttempt.MinScore], out minScore);

                float? maxScore;
                LStoreHelper.Cast(dataRow[Schema.InteractionResultsByAttempt.MaxScore], out maxScore);

                float? rawScore;
                LStoreHelper.Cast(dataRow[Schema.InteractionResultsByAttempt.RawScore], out rawScore);

                float? scaledScore;
                LStoreHelper.Cast(dataRow[Schema.InteractionResultsByAttempt.ScaledScore], out scaledScore);

                string primaryResourceFromManifest;
                LStoreHelper.Cast(dataRow[Schema.InteractionResultsByAttempt.PrimaryResourceFromManifest], out primaryResourceFromManifest);

                // Create AnswerResult object
                var answerResult = new AnswerResult(
                    activityAttemptId,
                    activityPackageId,
                    activityTitle,
                    interactionId,
                    iudicoCompletionStatus,
                    iudicoSuccessStatus,
                    attemptResult,
                    learnerResponse,
                    correctResponse,
                    learnerResponseType,
                    minScore,
                    maxScore,
                    rawScore,
                    scaledScore,
                    primaryResourceFromManifest);
                yield return answerResult;
            }
        }