// ==================================================================================
    /// <summary>
    /// This method creates the output file path for the test cases.
    /// </summary>
    // ----------------------------------------------------------------------------------
    private void saveTestCaseList ( )
    {
      this.LogMethod ( "saveTestCases" );
      //
      // Initialise the methods variables and objects.
      //
      StringBuilder output = new StringBuilder ( );
      string fileName = string.Empty;

      //fileName += this._SectionNo + "_";

      String pageId = this._PageCommand.GetPageId ( );
      if ( pageId != String.Empty )
      {
        //fileName += pageId + "_";
      }

      if ( this._PageCommand.hasParameter ( CommandParameters.Custom_Method ) == false )
      {
        fileName += this._PageCommand.Method + ".CSV";
      }
      else
      {
        var method = this._PageCommand.getCustomMethod() ;
        fileName += method + ".CSV";
      }

      this.LogValue ( "fileName: " + fileName );

      //
      // Create the file path for the output test cases.
      //
      this.setOutputFilePath ( );

      //
      // Add the test case header.
      //
      output.AppendLine ( EutAction.TestCaseHeader ( ) );

      for ( int i = 0; i < this._TestCaseList.Count; i++ )
      {
        EutAction action = this._TestCaseList [ i ];
        action.TestNo = i;
        action.SectionNo = this._SectionNo;

        output.AppendLine ( action.CsvTestCase ( ) );
      }

      this.LogValue ( "output.Length: " + output.Length );
      //
      // Save the output to the disk file.
      //
      bool result = EvStatics.Files.saveFileAppend (
         this._OutputFilePath,
         fileName,
         output.ToString ( ) );

      this.LogValue ( "result: " + result );
    }
    }//END Method

    #region generate test case methods.

    // ==================================================================================
    /// <summary>
    /// This method geneates the app data test cases.
    /// </summary>
    // ----------------------------------------------------------------------------------
    private void generateTestCases ( )
    {
      this.LogMethod ( "generateTestCases" );
      //
      // Initialise the methods variables and objects.
      //
      EutAction action = new EutAction ( );

      //
      // Create test case for application object title.
      //
      action = new EutAction ( );
      action.Action = EutCommand.Test_Application_Title;
      action.setParameter ( EutCommandParameters.Value,
        this._ClientData.Title );

      this._TestCaseList.Add ( action );

      //
      // Create test case for page object title.
      //
      action = new EutAction ( );
      action.Action = EutCommand.Test_Page_Title;
      action.Description = EvStatics.enumValueToString ( action.Action );
      action.setParameter ( EutCommandParameters.Value,
        this._ClientData.Page.Title );

      this._TestCaseList.Add ( action );

      //
      // Create test case for page object status.
      //
      action = new EutAction ( );
      action.Action = EutCommand.Test_Page_Status;
      action.Description = EvStatics.enumValueToString ( action.Action );
      action.setParameter ( EutCommandParameters.Value,
        this._ClientData.Page.EditAccess.ToString ( ) );
      this._TestCaseList.Add ( action );

      //
      // Create test case for page group object title.
      //
      this.generateGroupTestCases ( );

    }//END method 
    }//END generateGroupTestCases method 

    // ==================================================================================
    /// <summary>
    /// This method creates page group test cases.
    /// </summary>
    // ----------------------------------------------------------------------------------
    private void generateGroupCommandTestCases ( Group group )
    {
      this.LogMethod ( "generateGroupCommandTestCases" );
      //
      // Initialise the methods variables and objects.
      //
      EutAction action = new EutAction ( );

      //
      // Create test case for page field title.
      //
      for ( int i = 0; i < group.CommandList.Count; i++ )
      {
        Command command = group.CommandList [ i ];

        action = new EutAction ( );
        action.Action = EutCommand.Test_Group_Command_Index;
        action.Description = EvStatics.enumValueToString ( action.Action );
        action.setParameter ( EutCommandParameters.Value,
          i .ToString() );

        string title = command.Title;
        title = title.Replace ( "\r", String.Empty );
        title = title.Replace ( "\n", String.Empty );

        action = new EutAction ( );
        action.Action = EutCommand.Test_Group_Command_Title;
        action.Description = EvStatics.enumValueToString ( action.Action );
        action.setParameter ( EutCommandParameters.Value,
          title );

        this._TestCaseList.Add ( action );

        //
        // Create test case for field status.
        //
        action = new EutAction ( );
        action.Action = EutCommand.Test_Group_Command_Type;
        action.Description = EvStatics.enumValueToString ( action.Action );
        action.setParameter ( EutCommandParameters.Value,
          command.Type.ToString ( ) );

        this._TestCaseList.Add ( action );

        //
        // Create test case for field layout.
        //
        action = new EutAction ( );
        action.Action = EutCommand.Test_Group_Command_Application;
        action.Description = EvStatics.enumValueToString ( action.Action );
        action.setParameter ( EutCommandParameters.Value,
          command.ApplicationId );

        //
        // Create test case for field data type.
        //
        action = new EutAction ( );
        action.Action = EutCommand.Test_Group_Command_Object;
        action.Description = EvStatics.enumValueToString ( action.Action );
        action.setParameter ( EutCommandParameters.Value,
          command.Object );

        this._TestCaseList.Add ( action );

        //
        // Create test case for field is mandatory setting
        //
        action = new EutAction ( );
        action.Action = EutCommand.Test_Group_Command_Method;
        action.Description = EvStatics.enumValueToString ( action.Action );
        action.setParameter ( EutCommandParameters.Value,
          command.Method.ToString ( ) );

        this._TestCaseList.Add ( action );

        //
        // Create test case for group parameters
        //
        foreach ( Parameter prm in command.Parameters )
        {
          action = new EutAction ( );
          action.Action = EutCommand.Test_Group_Command_Parameter_Value;
          action.Description = EvStatics.enumValueToString ( action.Action );
          action.setParameter ( EutCommandParameters.Parameter_Name,
           prm.Name );
          action.setParameter ( EutCommandParameters.Value,
            prm.Value );

          this._TestCaseList.Add ( action );

        }//END parameter interation loop.

      }//END iteration loop

    }//END generateGroupTestCases method 
    }//END generateGroupTestCases method 

    // ==================================================================================
    /// <summary>
    /// This method creates page group test cases.
    /// </summary>
    // ----------------------------------------------------------------------------------
    private void generateGroupFieldsTestCases ( Group group )
    {
      this.LogMethod ( "generateFieldsTestCases" );
      //
      // Initialise the methods variables and objects.
      //
      EutAction action = new EutAction ( );

      //
      // Create test case for page field title.
      //
      foreach ( Field field in group.FieldList )
      {
        action = new EutAction ( );
        action.Action = EutCommand.Test_Field_Title;
        action.Description = EvStatics.enumValueToString ( action.Action );
        action.setParameter ( EutCommandParameters.Value,
          field.Title );

        this._TestCaseList.Add ( action );

        //
        // Create test case for field status.
        //
        action = new EutAction ( );
        action.Action = EutCommand.Test_Group_Edit_Status;
        action.Description = EvStatics.enumValueToString ( action.Action );
        action.setParameter ( EutCommandParameters.Value,
          field.EditAccess.ToString ( ) );

        this._TestCaseList.Add ( action );

        //
        // Create test case for field layout.
        //
        action = new EutAction ( );
        action.Action = EutCommand.Test_Group_Layout_Setting;
        action.Description = EvStatics.enumValueToString ( action.Action );
        action.setParameter ( EutCommandParameters.Value,
          field.Layout.ToString ( ) );

        //
        // Create test case for field data type.
        //
        action = new EutAction ( );
        action.Action = EutCommand.Test_Field_Data_Type;
        action.Description = EvStatics.enumValueToString ( action.Action );
        action.setParameter ( EutCommandParameters.Value,
          field.Type.ToString ( ) );

        this._TestCaseList.Add ( action );

        //
        // Create test case for field is mandatory setting
        //
        action = new EutAction ( );
        action.Action = EutCommand.Test_Field_Mandatory;
        action.Description = EvStatics.enumValueToString ( action.Action );
        action.setParameter ( EutCommandParameters.Value,
          field.Mandatory.ToString ( ) );

        this._TestCaseList.Add ( action );

        //
        // Create test case for field identifier
        //
        action = new EutAction ( );
        action.Action = EutCommand.Test_Field_Identifier;
        action.Description = EvStatics.enumValueToString ( action.Action );
        action.setParameter ( EutCommandParameters.Value,
          field.FieldId.ToString ( ) );

        this._TestCaseList.Add ( action );

        //
        // Create test case for group parameters
        //
        foreach ( Parameter prm in field.Parameters )
        {
          action = new EutAction ( );
          action.Action = EutCommand.Test_Field_Parameter_Value;
          action.Description = EvStatics.enumValueToString ( action.Action );
          action.setParameter ( EutCommandParameters.Parameter_Name,
           prm.Name );
          action.setParameter ( EutCommandParameters.Value,
            prm.Value );

          this._TestCaseList.Add ( action );
        }//END parameter interation loop.

      }//END iteration loop

    }//END generateGroupTestCases method 
    }//END generateGroupTestCases method 

    // ==================================================================================
    /// <summary>
    /// This method creates page group test cases.
    /// </summary>
    // ----------------------------------------------------------------------------------
    private void generateGroupTestCases ( )
    {
      this.LogMethod ( "generateGroupTestCases" );
      //
      // Initialise the methods variables and objects.
      //
      EutAction action = new EutAction ( );

      //
      // Create test case for page group object title.
      //
      foreach ( Group group in this._ClientData.Page.GroupList )
      {
        action = new EutAction ( );
        action.Action = EutCommand.Test_Group_Title;
        action.Description = EvStatics.enumValueToString ( action.Action );
        action.setParameter ( EutCommandParameters.Value,
          group.Title );

        this._TestCaseList.Add ( action );

        //
        // Create test case for group object status.
        //
        action = new EutAction ( );
        action.Action = EutCommand.Test_Group_Edit_Status;
        action.Description = EvStatics.enumValueToString ( action.Action );
        action.setParameter ( EutCommandParameters.Value,
          group.EditAccess.ToString ( ) );

        this._TestCaseList.Add ( action );

        //
        // Create test case for group object layout.
        //
        action = new EutAction ( );
        action.Action = EutCommand.Test_Group_Layout_Setting;
        action.Description = EvStatics.enumValueToString ( action.Action );
        action.setParameter ( EutCommandParameters.Value,
          group.Layout.ToString ( ) );

        //
        // Create test case for group object type.
        //
        action = new EutAction ( );
        action.Action = EutCommand.Test_Group_Type_Setting;
        action.Description = EvStatics.enumValueToString ( action.Action );
        action.setParameter ( EutCommandParameters.Value,
          group.GroupType.ToString ( ) );

        this._TestCaseList.Add ( action );

        //
        // Create test case for group object type.
        //
        action = new EutAction ( );
        action.Action = EutCommand.Test_Group_Command_Layout_Setting;
        action.Description = EvStatics.enumValueToString ( action.Action );
        action.setParameter ( EutCommandParameters.Value,
          group.CmdLayout.ToString ( ) );

        this._TestCaseList.Add ( action );

        //
        // Create test case for group parameters
        //
        foreach ( Parameter prm in group.Parameters )
        {
          action = new EutAction ( );
          action.Action = EutCommand.Test_Group_Parameter_Value;
          action.Description = EvStatics.enumValueToString ( action.Action );
          action.setParameter ( EutCommandParameters.Parameter_Name,
           prm.Name );
          action.setParameter ( EutCommandParameters.Value,
            prm.Value );

          this._TestCaseList.Add ( action );
        }//END parameter interation loop.

        //
        // Generat the group fields test cases.
        //
        this.generateGroupFieldsTestCases ( group );

        this.generateGroupCommandTestCases ( group );

      }//END iteration loop

    }//END generateGroupTestCases method