public void TestRead()
 {
   var samples = new BreastCancerSampleItemFormat("Source Name").ReadFromFile("../../../data/E-TABM-158.sdrf.txt");
   Assert.AreEqual(130, samples.Count);
   var s = samples[0];
   Assert.AreEqual("A-AFFY-76", s.Platform);
   Assert.AreEqual("E-TABM-158", s.Dataset);
   Assert.AreEqual("LBL_POP_W405609.F03.CEL", s.Sample);
   Assert.AreEqual("s0100", s.SourceName);
   Assert.AreEqual(string.Empty, s.SampleTitle);
   Assert.AreEqual(string.Empty, s.Patient);
   Assert.AreEqual("breast cancer", s.Disease);
   Assert.AreEqual("Neg", s.FamilyHistory);
   Assert.AreEqual("1", s.Stage);
   Assert.AreEqual("3", s.Grade);
   Assert.AreEqual(StatusValue.POSITIVE, s.ER);
   Assert.AreEqual(StatusValue.POSITIVE, s.PR);
   Assert.AreEqual(StatusValue.NEGATIVE, s.HER2);
   Assert.AreEqual(StatusValue.NEGATIVE, s.P53);
   Assert.AreEqual(StatusValue.NEGATIVE, s.HormonalTherapy);
   Assert.AreEqual(StatusValue.NEGATIVE, s.ChemotherapyTreatment);
   Assert.AreEqual(StatusValue.POSITIVE, s.RadiationTreatment);
   Assert.AreEqual(StatusValue.NEGATIVE, s.Recurrence);
   Assert.AreEqual(StatusValue.NEGATIVE, s.AliveAtEndpoint);
 }
 public void TestRead2()
 {
   var samples = new BreastCancerSampleItemFormat("Source Name").ReadFromFile("../../../data/E-MTAB-365.sdrf.txt");
   Assert.AreEqual(1843, samples.Count);
   var s = samples[1];
   Assert.AreEqual("A-AFFY-44", s.Platform);
   Assert.AreEqual("E-MTAB-365", s.Dataset);
   Assert.AreEqual("170706-09.CEL", s.Sample);
   Assert.AreEqual("CIT_DSOA_101", s.SourceName);
   Assert.AreEqual(string.Empty, s.SampleTitle);
   Assert.AreEqual(string.Empty, s.Patient);
   Assert.AreEqual("breast carcinoma", s.Disease);
   Assert.AreEqual(StatusValue.NA, s.FamilyHistory);
   Assert.AreEqual(string.Empty, s.Stage);
   Assert.AreEqual(string.Empty, s.Grade);
   Assert.AreEqual(StatusValue.POSITIVE, s.ER);
   Assert.AreEqual(StatusValue.NEGATIVE, s.PR);
   Assert.AreEqual(StatusValue.NEGATIVE, s.HER2);
   Assert.AreEqual(StatusValue.NA, s.P53);
   Assert.AreEqual(StatusValue.NA, s.HormonalTherapy);
   Assert.AreEqual(StatusValue.NA, s.ChemotherapyTreatment);
   Assert.AreEqual(StatusValue.NA, s.RadiationTreatment);
   Assert.AreEqual(StatusValue.NA, s.Recurrence);
   Assert.AreEqual(StatusValue.NA, s.AliveAtEndpoint);
 }
    public override IEnumerable<string> Process(string rootDirectory)
    {
      var subdirs = SampleUtils.GetDatasets(rootDirectory);

      var format = new BreastCancerSampleItemFormat();

      List<BreastCancerSampleItem> total = new List<BreastCancerSampleItem>();

      foreach (var subdir in subdirs)
      {
        var parser = ParserFactory.GetParserInDirectory(subdir);

        var dirname = Path.GetFileName(subdir);
        Console.WriteLine(dirname);

        Dictionary<string, BreastCancerSampleItem> flist = new Dictionary<string, BreastCancerSampleItem>();
        parser.ParseDataset(subdir, flist);

        total.AddRange(flist.Values);

        var sampleFile = subdir + @"\" + dirname + ".sample";
        format.WriteToFile(sampleFile, flist.Values.ToList());
      }

      var htmlFile = rootDirectory + "\\" + Path.GetFileNameWithoutExtension(rootDirectory) + "_SampleInformation.html";
      new BreastCancerSampleItemHtmlWriter().WriteToFile(htmlFile, total);

      var excelFile = Path.ChangeExtension(htmlFile, ".xls");
      new BreastCancerSampleItemExcelWriter().WriteToFile(excelFile, total);

      return new string[] { htmlFile, excelFile };
    }