Esempio n. 1
0
        public bool SyncPerson(Person person)
        {
            person.LoadAttributes();

            RiseUser riseUser = null;

            var riseId = person.GetAttributeValue(Constants.PERSON_ATTRIBUTE_KEY_RISEID);

            if (riseId.IsNotNullOrWhiteSpace())
            {
                riseUser = ClientManager.Get <RiseUser>(riseId);
            }

            if (riseUser == null)
            {
                riseUser = QueryForUser(person);
            }

            if (riseUser == null)
            {
                return(false);
            }

            riseUser.SyncGroupMembership(person);

            return(true);
        }
Esempio n. 2
0
        internal void SyncCompletions()
        {
            var xObject = GetExperienceObject();
            var reports = ClientManager.GetSet <RiseCourseReport>(this.CourseId);

            foreach (var report in reports)
            {
                var person = RiseUser.GetPerson(report.UserId);

                if (person == null)
                {
                    RiseClient riseClient = new RiseClient();
                    person = riseClient.GetUser(report.UserId).GetRockPerson();
                }

                if (person != null)
                {
                    var contextExtensions = new Dictionary <string, string> {
                        { "http://id.tincanapi.com/extension/duration", report.Duration }
                    };
                    UpdateCourseStatus(xObject, person, report.Status == "Complete", report.QuizScorePercent, contextExtensions);
                }
            }
        }