Example #1
0
        public static void UpdateCourseStatus(ExperienceObject xObject, Person person, bool complete, int?quizScorePercent, Dictionary <string, string> contextExtensions)
        {
            RockContext                rockContext                = new RockContext();
            ExperienceService          experienceService          = new ExperienceService(rockContext);
            ExperienceQualifierService experienceQualifierService = new ExperienceQualifierService(rockContext);

            var experience = experienceService.Queryable()
                             .Where(e => e.PersonAlias.PersonId == person.Id &&
                                    e.xObjectId == xObject.Id)
                             .FirstOrDefault();

            if (experience == null)
            {
                experience = new Experience
                {
                    PersonAliasId = person.PrimaryAliasId ?? 0,
                    VerbValueId   = xAPI.Utilities.VerbHelper.GetOrCreateVerb("http://activitystrea.ms/schema/1.0/complete").Id,
                    xObjectId     = xObject.Id,
                    Result        = new ExperienceResult
                    {
                        IsComplete = complete,
                        WasSuccess = complete
                    }
                };
                experienceService.Add(experience);
            }
            else
            {
                experience.Result.IsComplete = complete;
                experience.Result.WasSuccess = complete;
            }
            rockContext.SaveChanges();

            if (quizScorePercent.HasValue)
            {
                var score = experience.Result.AddQualifier("score");
                score.AddQualifier("percent", quizScorePercent.Value.ToString());
            }

            var context    = experience.AddQualifier("context");
            var extensions = context.AddQualifier("extensions");

            foreach (var extension in contextExtensions)
            {
                extensions.AddQualifier(extension.Key, extension.Value);
            }
        }
Example #2
0
 private void Start()
 {
     m_PlayerExperience = PlayerManager.Instance.Experience;
 }