/// <summary> /// Comparator helper /// </summary> /// <param name="o"></param> /// <returns></returns> public int CompareTo(object o) { ReliabilityIndex a = this; ReliabilityIndex b = (ReliabilityIndex)o; return(a.Session.CompareTo(b.Session)); }
/// <summary> /// Calculate reli /// </summary> public void CalculateReliability() { if (AllReliabilityIndices.Count < 1) { return; } XSSFWorkbook hssfworkbook = new XSSFWorkbook(); ISheet page = hssfworkbook.CreateSheet("Reliability"); ReliabilityIndex mBase = AllReliabilityIndices[0]; IRow currRow = page.CreateRow(0); currRow.CreateCell(0).SetCellValue("Name:"); currRow.CreateCell(1).SetCellValue(mBase.PatientName); currRow = page.CreateRow(1); currRow.CreateCell(0).SetCellValue("Evaluation:"); currRow.CreateCell(1).SetCellValue(mBase.Evaluation); //Skip row currRow = page.CreateRow(3); currRow.CreateCell(0).SetCellValue("Session:"); currRow.CreateCell(1).SetCellValue("Date:"); currRow.CreateCell(2).SetCellValue("Condition"); currRow.CreateCell(3).SetCellValue("Has Reli?"); currRow.CreateCell(4).SetCellValue("Primary"); currRow.CreateCell(5).SetCellValue("Reliability"); int currentRowNumber = 5; string temp = string.Empty; FileIndexClass mMain; IRow keyTitles = page.GetRow(3); page.CreateRow(4); IRow reliTitles = page.CreateRow(5); bool firstIndex = true; int rowSpacer = 6; foreach (ReliabilityIndex index in AllReliabilityIndices) { if (firstIndex) { mMain = mPrimaryList.Where(f => f.SessionNumber == index.Session).FirstOrDefault(); rowSpacer = 6; List <string> keyList = new List <string>(mMain.FrequencyValues.Keys); for (int fCount = 0; fCount < keyList.Count; fCount++) { currRow = page.CreateRow(4); keyTitles.CreateCell(rowSpacer).SetCellValue(keyList[fCount]); rowSpacer = rowSpacer + 6; } List <string> dKeyList = new List <string>(mMain.DurationValues.Keys); for (int dCount = 0; dCount < dKeyList.Count; dCount++) { currRow = page.CreateRow(4); keyTitles.CreateCell(rowSpacer).SetCellValue(dKeyList[dCount]); rowSpacer = rowSpacer + 6; } firstIndex = false; } if (index.IsSelected) { currRow = page.CreateRow(currentRowNumber); currRow.CreateCell(0).SetCellValue(index.Session); currRow.CreateCell(1).SetCellValue(index.DateCollected); currRow.CreateCell(2).SetCellValue(index.Condition); currRow.CreateCell(3).SetCellValue(index.HasReli ? "yes" : "no"); currRow.CreateCell(4).SetCellValue(index.DataCollector); currRow.CreateCell(5).SetCellValue(index.ReliCollector); if (index.HasReli) { mMain = mPrimaryList.Where(f => f.SessionNumber == index.Session).FirstOrDefault(); rowSpacer = 6; List <string> fKeyList = new List <string>(mMain.FrequencyValues.Keys); for (int fCount = 0; fCount < fKeyList.Count; fCount++) { if (index.FrequencyValues.ContainsKey(fKeyList[fCount]) && index.ReliFrequencyValues.ContainsKey(fKeyList[fCount])) { int[] mFreqHolderP = index.FrequencyValues[fKeyList[fCount]]; int[] mFreqHolderR = index.ReliFrequencyValues[fKeyList[fCount]]; currRow.CreateCell(rowSpacer).SetCellValue(getFreqEIA(mFreqHolderP, mFreqHolderR)); currRow.CreateCell(rowSpacer + 1).SetCellValue(getFreqPIA(mFreqHolderP, mFreqHolderR)); currRow.CreateCell(rowSpacer + 2).SetCellValue(getFreqTIA(mFreqHolderP, mFreqHolderR)); currRow.CreateCell(rowSpacer + 3).SetCellValue(getFreqOIA(mFreqHolderP, mFreqHolderR)); currRow.CreateCell(rowSpacer + 4).SetCellValue(getFreqNIA(mFreqHolderP, mFreqHolderR)); currRow.CreateCell(rowSpacer + 5).SetCellValue(getFreqPMA(mFreqHolderP, mFreqHolderR)); page.GetRow(4).CreateCell(rowSpacer).SetCellValue("EIA"); page.GetRow(4).CreateCell(rowSpacer + 1).SetCellValue("PIA"); page.GetRow(4).CreateCell(rowSpacer + 2).SetCellValue("TIA"); page.GetRow(4).CreateCell(rowSpacer + 3).SetCellValue("OIA"); page.GetRow(4).CreateCell(rowSpacer + 4).SetCellValue("NIA"); page.GetRow(4).CreateCell(rowSpacer + 5).SetCellValue("PMA"); rowSpacer = rowSpacer + 6; } } List <string> dKeyList = new List <string>(mMain.DurationValues.Keys); for (int dCount = 0; dCount < dKeyList.Count; dCount++) { if (index.DurationValues.ContainsKey(dKeyList[dCount]) && index.ReliDurationValues.ContainsKey(dKeyList[dCount])) { double[] mFreqHolderP = index.DurationValues[dKeyList[dCount]]; double[] mFreqHolderR = index.ReliDurationValues[dKeyList[dCount]]; currRow.CreateCell(rowSpacer).SetCellValue(getDurationEIA(mFreqHolderP, mFreqHolderR)); currRow.CreateCell(rowSpacer + 1).SetCellValue(getDurationPIA(mFreqHolderP, mFreqHolderR)); currRow.CreateCell(rowSpacer + 2).SetCellValue(getDurationTIA(mFreqHolderP, mFreqHolderR)); currRow.CreateCell(rowSpacer + 3).SetCellValue(getDurationOIA(mFreqHolderP, mFreqHolderR)); currRow.CreateCell(rowSpacer + 4).SetCellValue(getDurationNIA(mFreqHolderP, mFreqHolderR)); currRow.CreateCell(rowSpacer + 5).SetCellValue(getDurationPMA(mFreqHolderP, mFreqHolderR)); page.GetRow(4).CreateCell(rowSpacer).SetCellValue("EIA"); page.GetRow(4).CreateCell(rowSpacer + 1).SetCellValue("PIA"); page.GetRow(4).CreateCell(rowSpacer + 2).SetCellValue("TIA"); page.GetRow(4).CreateCell(rowSpacer + 3).SetCellValue("OIA"); page.GetRow(4).CreateCell(rowSpacer + 4).SetCellValue("NIA"); page.GetRow(4).CreateCell(rowSpacer + 5).SetCellValue("PMA"); } rowSpacer = rowSpacer + 6; } } currentRowNumber = currentRowNumber + 1; } } page.AutoSizeColumn(0); page.AutoSizeColumn(1); page.AutoSizeColumn(2); SaveFileDialog dlg = new SaveFileDialog(); dlg.FileName = "Reliabilty-Output"; // Default file name dlg.DefaultExt = ".xlsx"; // Default file extension dlg.Filter = "Excel File (.xlsx)|*.xlsx"; // Filter files by extension // Show save file dialog box Nullable <bool> result = dlg.ShowDialog(); // Process save file dialog box results if (result == true) { string filename = dlg.FileName; try { using (FileStream file = new FileStream(filename, FileMode.Create)) { hssfworkbook.Write(file); } } catch (IOException e) { Console.WriteLine(e.ToString()); } } }