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); } }
private void Start() { m_PlayerExperience = PlayerManager.Instance.Experience; }