public static ClassificationOfInstructionalPrograms RandomClassificationInstructionalProgram(
            Predicate <ClassificationOfInstructionalPrograms> filterBy = null)
        {
            var randParent = SocDetailedOccupation.RandomSocDetailedOccupation();

            return(randParent?.GetRandomClassification(filterBy));
        }
 /// <summary>
 /// Asserts if the given occupation is likely paid in tips
 /// </summary>
 /// <param name="soc"></param>
 /// <returns></returns>
 public static bool IsTips(SocDetailedOccupation soc)
 {
     if (soc == null)
     {
         return(false);
     }
     return(new[] { "35-301", "35-303", "35-304", "39-30" }.Any(s => soc.Value.StartsWith(s)));
 }
 /// <summary>
 /// Asserts if the given occupation is likely paid in commission
 /// </summary>
 /// <param name="soc"></param>
 /// <returns></returns>
 public static bool IsCommissions(SocDetailedOccupation soc)
 {
     if (soc == null)
     {
         return(false);
     }
     return(new[] { "41-203", "41-30", "41-40", "41-90" }.Any(s => soc.Value.StartsWith(s)));
 }
 /// <summary>
 /// Asserts if the given occupation is likely associated with a Labor Union
 /// </summary>
 /// <param name="soc"></param>
 /// <returns></returns>
 public static bool IsLaborUnion(SocDetailedOccupation soc)
 {
     if (soc == null)
     {
         return(false);
     }
     return(new[]
     {
         "25", "27-20", "29-11", "29-20", "47-20", "47-50", "49-30",
         "51-2", "51", "53-3", "53-4"
     }.Any(s => soc.Value.StartsWith(s)));
 }
 /// <summary>
 /// Asserts if the given occupation is likely to require a higher education degree
 /// </summary>
 /// <param name="soc"></param>
 /// <returns></returns>
 public static bool IsDegreeRequired(SocDetailedOccupation soc)
 {
     if (soc == null)
     {
         return(false);
     }
     return(new[]
     {
         "11-903", "11-904", "11-911", "11-912", "13-201", "15-20", "17-20", "17-21", "17-1011", "19-102",
         "19-104", "19-20", "19-303", "19-304", "19-309", "21-201", "23-101", "25-1", "25-2", "25-402", "29-102",
         "29-104", "29-105", "29-106", "29-113", "29-114"
     }.Any(s => soc.Value.StartsWith(s)));
 }
        /// <summary>
        /// Asserts if the given occupation is likely paid in wages
        /// </summary>
        /// <param name="soc"></param>
        /// <returns></returns>
        public static bool IsWages(SocDetailedOccupation soc)
        {
            if (soc == null)
            {
                return(false);
            }

            return(new[]
            {
                "27-10", "27-20", "27-402", "37", "35-20",
                "35-302", "35-9", "39-30", "39-50", "39-60", "39-70",
                "39-90", "41", "43", "47", "49", "51", "53"
            }.Any(s =>
                  soc.Value.StartsWith(s)));
        }