git reviewAdded Command for tutorial

Change-Id: Ib1111ae8e4108c542296ee2c2c145271d905da72
diff --git a/views/ngXosViews/UITutorial/src/index.html b/views/ngXosViews/UITutorial/src/index.html
index d325f9c..00f0a42 100644
--- a/views/ngXosViews/UITutorial/src/index.html
+++ b/views/ngXosViews/UITutorial/src/index.html
@@ -17,9 +17,9 @@
 <!-- bower:js -->
 <script src="vendor/jquery/dist/jquery.js"></script>
 <script src="vendor/lodash/lodash.js"></script>
+<script src="vendor/josh.js/js/killring.js"></script>
 <script src="vendor/josh.js/js/readline.js"></script>
 <script src="vendor/josh.js/js/history.js"></script>
-<script src="vendor/josh.js/js/killring.js"></script>
 <script src="vendor/josh.js/js/input.js"></script>
 <script src="vendor/josh.js/js/pathhandler.js"></script>
 <script src="vendor/josh.js/js/shell.js"></script>
@@ -41,6 +41,8 @@
 <script src="/.tmp/main.js"></script>
 <script src="/.tmp/templateHandler.js"></script>
 <script src="/.tmp/responseHandler.js"></script>
+<script src="/.tmp/lessonsInfo.js"></script>
+<script src="/.tmp/learnCmd.js"></script>
 <script src="/.tmp/exploreCmd.js"></script>
 <script src="/.tmp/errorHandler.js"></script>
 <!-- endinject -->
\ No newline at end of file
diff --git a/views/ngXosViews/UITutorial/src/js/learnCmd.js b/views/ngXosViews/UITutorial/src/js/learnCmd.js
new file mode 100644
index 0000000..cb58084
--- /dev/null
+++ b/views/ngXosViews/UITutorial/src/js/learnCmd.js
@@ -0,0 +1,76 @@
+(function () {
+  'use strict';
+  angular.module('xos.UITutorial')
+  .service('LearnCmd', function(LessonInfo, $cookies, ErrorHandler){
+
+
+    this.getCurrentLesson = (id,done)=>{
+      var details = LessonInfo.lessonCatalogue(id);
+      $cookies.put('lessonId', id);
+      done(details.text);
+    };
+
+    this.nextLesson = (shell) => {
+      this.shell = shell;
+      shell.setCommandHandler('next', {
+        exec: this.getNextLesson,
+      });
+    }
+
+    this.printLesson = (shell) => {
+      this.shell = shell;
+      shell.setCommandHandler('print', {
+        exec: this.printCurrentLesson,
+      });
+    };
+
+    this.prevLesson = (shell) => {
+      this.shell = shell;
+      shell.setCommandHandler('prev', {
+        exec: this.getPreviousLesson,
+      });
+    }
+
+    this.getLessonIdFromCookie = ()=>{
+      return $cookies.get('lessonId') ? parseInt($cookies.get('lessonId')) : -1;
+    };
+
+    this.getNextLesson = (cmd,arg,done)=>{
+      let lessonId = this.getLessonIdFromCookie();
+      return this.getCurrentLesson(lessonId+1,done)  ;
+    };
+
+    this.getPreviousLesson = (cmd,arg,done)=>{
+      let lessonId = this.getLessonIdFromCookie();
+      if(lessonId>0)  {
+        this.getCurrentLesson(lessonId-1,done)
+      }
+      else {
+        ErrorHandler.print(`This is the first Lesson`, done);
+      }
+    };
+
+    this.printCurrentLesson = (cmd,args,done)=>{
+      if (args[0]){
+        this.getCurrentLesson(args[0], done);
+      }
+      else {
+        let lessonId = this.getLessonIdFromCookie();
+        if (lessonId > -1) {
+          this.getCurrentLesson(lessonId, done)
+        }
+        else {
+          ErrorHandler.print(`This is the first Lesson`, done);
+        }
+      }
+    };
+
+    this.setup = (shell) => {
+      this.shell = shell;
+      this.nextLesson(shell);
+      this.prevLesson(shell);
+      this.printLesson(shell);
+    };
+
+  });
+})();
\ No newline at end of file
diff --git a/views/ngXosViews/UITutorial/src/js/lessonsInfo.js b/views/ngXosViews/UITutorial/src/js/lessonsInfo.js
new file mode 100644
index 0000000..7dea0db
--- /dev/null
+++ b/views/ngXosViews/UITutorial/src/js/lessonsInfo.js
@@ -0,0 +1,43 @@
+(function () {

+  'use strict';

+  angular.module('xos.UITutorial')

+  .service('LessonInfo', function(){

+

+    this.lessonCatalogue = (id) => {

+      let lessonData = [

+        {

+          id: 0,

+          text: 'lesson 0 info',

+          solution: 'Hello World'

+        },

+        {

+          id: 1,

+          text: 'lesson 1 info',

+          solution: 'Hello World'

+        },

+        {

+          id: 2,

+          text: 'lesson 2 info',

+          solution: 'Hello World'

+        },

+        {

+          id: 3,

+          text: 'lesson 3 info',

+          solution: 'Hello World'

+        },

+        {

+          id: 4,

+          text: 'lesson 4 info',

+          solution: 'Hello World  '

+        },

+        {

+          id: 5,

+          text: 'lesson 5 info',

+          solution: 'Hello World'

+        }

+      ];

+      return lessonData[id];

+    }

+

+  });

+} )();
\ No newline at end of file
diff --git a/views/ngXosViews/UITutorial/src/js/main.js b/views/ngXosViews/UITutorial/src/js/main.js
index c89f1da..627a560 100644
--- a/views/ngXosViews/UITutorial/src/js/main.js
+++ b/views/ngXosViews/UITutorial/src/js/main.js
@@ -23,7 +23,7 @@
     bindToController: true,
     controllerAs: 'vm',
     templateUrl: 'templates/js-shell.tpl.html',
-    controller: function(ExploreCmd){
+    controller: function(ExploreCmd,LearnCmd){
       var history = new Josh.History({ key: 'jsshell.history'});
       this.shell = Josh.Shell({history: history});
 
@@ -45,6 +45,20 @@
         }
       });
 
+      this.shell.setCommandHandler('learn', {
+        exec: (cmd, args, done) => {
+          LearnCmd.setup(this.shell);
+          done(TemplateHandler.instructions({
+            title: `You can now learn the API`,
+            messages: [
+              `Use <code>next</code> to move to the next lesson <code>resource {resoureName} {method} {?paramters}</code> to call the API.`,
+              `An example command is <code>resource Slices query</code>`,
+              `You can also provide paramters with <code>next</code>`
+            ]
+          }));
+        }
+      });
+
       this.shell.activate();
     }
   };