コード例 #1
0
        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);
        }