private string GetFilePolarity(string sFileName) { bool bMultEC = false; bool bEIorCI = false; bool bAllIon = false; double lowEng = double.NaN; double[] hiEng = null; IBDAMSScanFileInformation msfi; var isGCEI = false; var rv = string.Empty; if (!Directory.Exists(sFileName)) { return(rv); } IDataAccess dataAccessor = new DataAccess() as IDataAccess; dataAccessor.OpenDataFile(sFileName); var bda = dataAccessor.BaseDataAccess; // new BDADataAccess() as IBDADataAccess; // bda.OpenDataFile(, true); msfi = bda.FileInformation.MSScanFileInformation; isGCEI = bda.IsGCEIData(); //IDataAccess dataAccessor = bda as IDataAccess; bool bIsAllIons = FindCpdsUtilities.HasAllIonSupport(dataAccessor, out lowEng, out hiEng, out bMultEC, out bAllIon, out bEIorCI); //bda.CloseDataFile(); dataAccessor.CloseDataFile(); // Create a string like ESI+, ESI- or EI+ // 1. identify the ion source switch (msfi.IonModes) { case IonizationMode.Unspecified: // ChemStation translated .D files do not specify the ionization mode if (isGCEI) { rv = "EI"; } break; case IonizationMode.Esi: case IonizationMode.JetStream: case IonizationMode.MsChip: case IonizationMode.NanoEsi: rv = "ESI"; break; case IonizationMode.Apci: case IonizationMode.Appi: case IonizationMode.CI: case IonizationMode.EI: case IonizationMode.ICP: case IonizationMode.Maldi: rv = msfi.IonModes.ToString().ToUpperInvariant(); break; } // 2. +/- polarity switch (msfi.IonPolarity) { case IonPolarity.Positive: rv += "+"; break; case IonPolarity.Negative: rv += "-"; break; case IonPolarity.Mixed: rv += "\u00B1"; // +/- character break; } return(rv); }