static public bool?HasHla(Hla hlaGoal, Dictionary <string, string> row, HlaResolution hlaResolution)
        {
            bool hasNull = false;

            for (int i = 1; i <= 2; ++i)
            {
                string      column            = hlaGoal.ToString().Substring(0, 1) + i.ToString();
                HlaToLength hlaToLengthOrNull = HlaAssignmentParams.GetHlaToLengthValueOrNull(row, column, hlaResolution);
                if (hlaToLengthOrNull == null || hlaToLengthOrNull.HlaNumberToLength >= 9000)
                {
                    hasNull = true;
                    continue;
                }

                if (hlaGoal.ToString() == hlaToLengthOrNull.ToString())
                {
                    return(true);
                }
            }
            if (hasNull)
            {
                return(null);
            }
            else
            {
                return(false);
            }
        }
        private static string SetSupertypeAny(Hla hla, SupertypeSpec hasBlanks)
        {
            switch (hasBlanks)
            {
            case SupertypeSpec.HasBlanksTrue:
            {
                HlaToLength hlaToLength  = HlaToLength.GetInstanceABMixed(hla.Name);
                string      supertypeAny = hlaToLength.ToZero6SupertypeBlanksString();
                return(supertypeAny);
            }

            case SupertypeSpec.HasBlanksFalse:
            {
                HlaToLength hlaToLength  = HlaToLength.GetInstanceABMixed(hla.Name);
                string      supertypeAny = hlaToLength.ToZero6SupertypeNoBlanksString();
                return(supertypeAny);
            }

            case SupertypeSpec.None:
                return("none");    //!!!const

            default:
                SpecialFunctions.CheckCondition(false, "unknown SupertypeSpec: " + hasBlanks.ToString());
                return(null);
            }
        }
Example #3
0
        public static Hla GetHlaValue(Dictionary <string, string> row, string column, HlaResolution hlaResolution)
        {
            HlaToLength hlaToLength = GetHlaToLengthValueOrNull(row, column, hlaResolution);

            SpecialFunctions.CheckCondition(hlaToLength != null);
            return(HlaFactory.GetGroundInstance(hlaToLength.ToString()));
        }
        private static Hla GetHlaFromRow(Dictionary <string, string> causeAssignmentRow, HlaResolution hlaResolution)
        {
            Qmrr.HlaFactory hlaFactory = Qmrr.HlaFactory.GetFactory("noConstraint");

            string hla = causeAssignmentRow["HLA"];

            if (hla.Length == 4 || hla.Length == 2)             //!!!should this be moved to GetHlaLengthInstance so doesn't appear twice?
            {
                hla = hla.Substring(0, 1) + "0" + hla.Substring(1);
            }

            HlaToLength hlaToLength = hlaResolution.GetHlaLengthInstance(hla);

            SpecialFunctions.CheckCondition(hlaToLength != null);
            return(hlaFactory.GetGroundInstance(hlaToLength.ToString()));
        }
Example #5
0
        internal static HlaToLength GetHlaToLengthValueOrNull(Dictionary <string, string> row, string column, HlaResolution hlaResolution)
        {
            string hlaValue = row[column].ToString();

            if (hlaValue.StartsWith("A") || hlaValue.StartsWith("B") || hlaValue.StartsWith("C"))
            {
                HlaToLength hlaToLength = hlaResolution.GetHlaLengthInstance(hlaValue);
                return(hlaToLength);
            }
            else
            {
                if (hlaValue.Length == 3 || hlaValue.Length == 1)
                {
                    hlaValue = "0" + hlaValue;
                }
                string      hla         = (column[0].ToString() + hlaValue).ToUpper();
                HlaToLength hlaToLength = hlaResolution.GetHlaLengthInstance(hla);
                return(hlaToLength);
            }
        }
        static public IEnumerable <Hla> FindAllHla(List <Dictionary <string, string> > expandedTable, HlaResolution hlaResolution, string header)
        {
            Qmrr.HlaFactory hlaFactory = Qmrr.HlaFactory.GetFactory("noConstraint");

            Dictionary <Hla, bool> seenIt = new Dictionary <Hla, bool>();

            foreach (Dictionary <string, string> row in expandedTable)
            {
                foreach (string column in HlaAssignmentParams.CreateHlaColumns(header))
                {
                    HlaToLength hlaToLengthOrNull = HlaAssignmentParams.GetHlaToLengthValueOrNull(row, column, hlaResolution);
                    if (hlaToLengthOrNull == null || hlaToLengthOrNull.HlaNumberToLength >= 9000)
                    {
                        continue;
                    }
                    Hla hla = hlaFactory.GetGroundInstance(hlaToLengthOrNull.ToString());
                    if (!seenIt.ContainsKey(hla))
                    {
                        seenIt.Add(hla, true);
                        yield return(hla);
                    }
                }
            }
        }