/// <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; }
/// <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; }
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); }
/// <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); }
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); }
public bool isLevelComplete(string levelId) { InteractiveLevel level = this.levelsComplete.ToList().FirstOrDefault((x) => x._id == levelId); return(!(level == null)); }