public static void StartTask(SampleDirectory currentDirectory, string sampleTask)
        {
            if (currentDirectory == SampleDirectory.Root)
            {
                Console.WriteLine("There should be no sample under Root directory");
                return;
            }
            int sampleTaskNo;

            if (Int32.TryParse(sampleTask, out sampleTaskNo))
            {
                string sampleListFile = "CSharpBenchmarkSample." + currentDirectory.ToString() + "._SampleList";
                ISampleList sampleList = (ISampleList)InstanceFactory.CreateInstance(Type.GetType(sampleListFile));
                sampleList.GetSampleNameBySampleNumber(sampleTaskNo, out sampleTask);
            }
            string sampleTaskPath = "CSharpBenchmarkSample." + currentDirectory.ToString() + "." + sampleTask;
            try
            {
                IRunningSample sample = (IRunningSample)InstanceFactory.CreateInstance(Type.GetType(sampleTaskPath));
                Console.WriteLine();
                Console.WriteLine("Starting Task {0}", sampleTask);
                Start(sample);
                Console.WriteLine("End Task");
            }
            catch (Exception)
            {
                Console.WriteLine("No such sample {0} under \"{1}\"", sampleTask, currentDirectory.ToString());
            }
        }
 public static void ChangeDirectory(ref SampleDirectory applicationDirecotry, string targetDirectory)
 {
     SampleDirectory target;
     if (Enum.TryParse<SampleDirectory>(targetDirectory, true, out target))
     {
         ChangeDirectory(ref applicationDirecotry, target);
     }
     else
     {
         Console.WriteLine("No such directory");
     }
 }
 public static void List(SampleDirectory currentDirectory)
 {
     Console.WriteLine();
     if (currentDirectory == SampleDirectory.Root)
     {
         Console.WriteLine("Current directory under \"Root\"");
         foreach (SampleDirectory dir in Enum.GetValues(typeof(SampleDirectory)))
         {
             if (dir != SampleDirectory.Root)
             {
                 Console.WriteLine(dir.ToString());
             }
         }
     }
     else
     {
         string sampleListFile = "CSharpBenchmarkSample." + currentDirectory.ToString() + "._SampleList";
         Console.WriteLine("Current sample(s) under \"{0}\" :", currentDirectory.ToString());
         ISampleList sampleList = (ISampleList)InstanceFactory.CreateInstance(Type.GetType(sampleListFile));
         sampleList.List();
     }
 }
 public static void ChangeDirectory(ref SampleDirectory applicationDirectory, SampleDirectory targetDirectory)
 {
     applicationDirectory = targetDirectory;
 }