Esempio n. 1
0
        /// <summary>
        /// Execute's a configured guide based on the parameters
        /// </summary>
        /// <param name="group">The name of the group to execute</param>

        public void RunInteractiveHelp(string group)
        {
            if (!iGuide.ContainsKey(group))
            {
                return;
            }
            bool countCheck   = false;
            int  msgCount     = iGuide[group].messages.Count;
            int  idleCount    = iGuide[group].idle.Count;
            int  triggerCount = iGuide[group].messages.Count;

            if (msgCount == idleCount && msgCount == triggerCount)
            {
                countCheck = true;
            }
            if (!countCheck)
            {
                return;
            }
            InteractiveLevel level = iGuide[group].level;

            string[] messages = iGuide[group].messages.ToArray();
            GetCommandUpdates = true;
            Thread.Sleep(iGuide[group].idle[0] * 1000);
            WriteLine(messages[currentHelpIndex]);
            currentHelpIndex++;
            currentHelp = group;
        }
Esempio n. 2
0
        /// <summary>
        /// Set the level of tutorial for a group
        /// </summary>
        /// <param name="group">The group name</param>
        /// <param name="level">The desired level</param>

        public void SetLevel(string group, InteractiveLevel level)
        {
            if (!iGuide.ContainsKey(group))
            {
                return;
            }
            InteractiveHelp ih = iGuide[group];

            ih.level      = level;
            iGuide[group] = ih;
        }
Esempio n. 3
0
        public static void CompleteLevel(InteractiveCourse course, InteractiveLevel level, bool complete, Action <CourseProgress[]> onComplete)
        {
            //PUT /api/interactive/progress
            Dictionary <string, object> body = new Dictionary <string, object>()
            {
                { "type", "level" },
                { "id", level._id },
                { "course", course._id },
                { "complete", complete },
                { "member", User.current.selectedMembership._id }
            };

            ServerRequest.CallAPI("/interactive/progress", HTTPMethod.PUT, body, (r) => ServerRequest.ResponseHandler(r, "userProgress", onComplete), true);
        }
Esempio n. 4
0
        /// <summary>
        /// Create a group for interactive help running the user through the process of a command, action
        /// </summary>
        /// <param name="group">The grouping name for the guide</param>
        /// <param name="level">The help level of the guide</param>

        public void CreateInteractive(string group, string explanation, InteractiveLevel level = InteractiveLevel.Normal)
        {
            if (iGuide.ContainsKey(group))
            {
                return;
            }
            InteractiveHelp ih = new InteractiveHelp
            {
                level       = level,
                messages    = new List <string>(),
                idle        = new List <int>(),
                triggerNext = new List <Func <bool> >()
            };

            iGuide.Add(group, ih);
            exp.Add(explanation);
        }
Esempio n. 5
0
        public static void UpdateLevel(InteractiveLevel level, Action <InteractiveLevel> onComplete)
        {
            List <string> quizIds = new List <string>();

            for (int i = 0; i < level.quizzes.Length; i++)
            {
                if (level.quizzes[i] != null && !string.IsNullOrEmpty(level.quizzes[i]._id))
                {
                    quizIds.Add(level.quizzes[i]._id);
                }
            }

            List <string> lessonIds = new List <string>();

            for (int i = 0; i < level.lessons.Length; i++)
            {
                if (level.lessons[i] != null && !string.IsNullOrEmpty(level.lessons[i]._id))
                {
                    lessonIds.Add(level.lessons[i]._id);
                }
            }

            UpdateLevel(level._id, level.name, level.description, quizIds.ToArray(), lessonIds.ToArray(), onComplete);
        }
Esempio n. 6
0
    public bool isLevelComplete(string levelId)
    {
        InteractiveLevel level = this.levelsComplete.ToList().FirstOrDefault((x) => x._id == levelId);

        return(!(level == null));
    }