Ejemplo n.º 1
0
        public void SetScormData(string userId, string lessonId, string enrollmentId, string param, string value)
        {
            var enrollment = unitOfWork.EnrollmentRepository.GetById(enrollmentId);

            if (enrollment.UserId == userId)
            {
                var scormData = enrollment.ScormData.SingleOrDefault(x => x.LessonId == lessonId);
                if (scormData != null)
                {
                    JObject jsonData = null;

                    if (scormData.DataResult == ScormDataResultEnum.NotStarted)
                    {
                        scormData.DataResult = ScormDataResultEnum.Started;
                    }

                    if (scormData.TemporaryData != null)
                    {
                        jsonData = JObject.Parse(scormData.TemporaryData);

                        if (jsonData[param] == null)
                        {
                            jsonData.Add(new JProperty(param, value));
                        }
                        else
                        {
                            jsonData[param] = value;
                        }

                        scormData.TemporaryData = jsonData.ToString();
                    }
                    else
                    {
                        jsonData = new JObject(new JProperty(param, value));
                        scormData.TemporaryData = jsonData.ToString();
                    }

                    unitOfWork.EnrollmentRepository.Update(enrollment);
                    unitOfWork.SaveChanges();
                }
                else
                {
                    scormData = new ScormData();
                    JObject jsonData = new JObject();
                    scormData.DataResult = ScormDataResultEnum.Started;
                    jsonData.Add(new JProperty(param, value));
                    scormData.TemporaryData = jsonData.ToString();
                    enrollment.ScormData.Add(scormData);

                    unitOfWork.EnrollmentRepository.Update(enrollment);
                    unitOfWork.SaveChanges();
                }
            }
        }
Ejemplo n.º 2
0
        private void CheckScormCompletion(ScormData scormData)
        {
            logger.Trace("Inside CheckLessonCompletion");

            var jsonData      = JObject.Parse(scormData.PersistentData);
            var lessonStatus  = jsonData["cmi.core.lesson_status"];
            var successStatus = jsonData["cmi.success_status"];

            logger.Info("id: {0}, lessonStatus: {1}, successStatus: {2}", scormData.Id, lessonStatus, successStatus);

            if ((lessonStatus != null && lessonStatus.ToString() == "passed") || (successStatus != null && successStatus.ToString() == "passed"))
            {
                scormData.IsCompleted = true;
                scormData.DataResult  = ScormDataResultEnum.Passed;

                logger.Debug("Passed... lessonData.DataResult: " + scormData.DataResult);
            }

            if ((lessonStatus != null && lessonStatus.ToString() == "failed") || (successStatus != null && successStatus.ToString() == "failed"))
            {
                scormData.IsCompleted = true;
                scormData.DataResult  = ScormDataResultEnum.Faild;
            }
        }