private static ClassEnum GetClassByScore(IUCNCategoryEnum a_Category, PriorityEnum a_Priority, int a_Score)
 {
     if (a_Category.IsOneOf(IUCNCategoryEnum.NotEvaluated, IUCNCategoryEnum.DataDeficient) || a_Priority == PriorityEnum.DataDeficientNotEvaluated)
     {
         return(ClassEnum.DataDeficientNotEvaluated);
     }
     if (a_Score.IsOneOf(2, 3, 6, 7, 8, 9))
     {
         return(ClassEnum.Class4);
     }
     if (a_Score.IsOneOf(10, 11, 12))
     {
         return(ClassEnum.Class3);
     }
     if (a_Score.IsOneOf(13, 14, 15, 16, 17, 18))
     {
         return(ClassEnum.Class2);
     }
     if (a_Score.IsOneOf(20, 22, 25))
     {
         return(ClassEnum.Class1);
     }
     return(ClassEnum.DataDeficientNotEvaluated);
 }
 private static byte GetScoreByCategoryAndPriority(IUCNCategoryEnum a_Category, PriorityEnum a_Priority)
 {
     return((byte)(a_Category.GetEnumScore() + a_Priority.GetEnumScore()));
 }
 private static ClassEnum GetClassByCategoryAndPriority(IUCNCategoryEnum a_Category, PriorityEnum a_Priority)
 {
     if (a_Priority == PriorityEnum.DataDeficientNotEvaluated)
     {
         return(ClassEnum.DataDeficientNotEvaluated);
     }
     if (a_Category == IUCNCategoryEnum.ExtinctInTheWild)
     {
         if (a_Priority.IsOneOf(PriorityEnum.BasicPriority, PriorityEnum.MediumPriority))
         {
             return(ClassEnum.Class2);
         }
         return(ClassEnum.Class1);
     }
     if (a_Category == IUCNCategoryEnum.CriticallyEndangered)
     {
         if (a_Priority == PriorityEnum.VeryHighPriority)
         {
             return(ClassEnum.Class1);
         }
         return(ClassEnum.Class2);
     }
     if (a_Category == IUCNCategoryEnum.Endangered)
     {
         if (a_Priority == PriorityEnum.VeryHighPriority)
         {
             return(ClassEnum.Class1);
         }
         if (a_Priority == PriorityEnum.HighPriority)
         {
             return(ClassEnum.Class2);
         }
         return(ClassEnum.Class3);
     }
     if (a_Category == IUCNCategoryEnum.Vulnerable)
     {
         if (a_Priority.IsOneOf(PriorityEnum.VeryHighPriority, PriorityEnum.HighPriority))
         {
             return(ClassEnum.Class2);
         }
         if (a_Priority == PriorityEnum.MediumPriority)
         {
             return(ClassEnum.Class3);
         }
         return(ClassEnum.Class4);
     }
     if (a_Category == IUCNCategoryEnum.NearThreatened)
     {
         if (a_Priority == PriorityEnum.VeryHighPriority)
         {
             return(ClassEnum.Class2);
         }
         if (a_Priority == PriorityEnum.HighPriority)
         {
             return(ClassEnum.Class3);
         }
         return(ClassEnum.Class4);
     }
     if (a_Category == IUCNCategoryEnum.LeastConcern)
     {
         if (a_Priority == PriorityEnum.VeryHighPriority)
         {
             return(ClassEnum.Class3);
         }
         return(ClassEnum.Class4);
     }
     if (a_Category == IUCNCategoryEnum.DataDeficient || a_Category == IUCNCategoryEnum.NotEvaluated)
     {
         if (a_Priority == PriorityEnum.VeryHighPriority)
         {
             return(ClassEnum.Class1);
         }
         if (a_Priority == PriorityEnum.HighPriority)
         {
             return(ClassEnum.Class2);
         }
         if (a_Priority == PriorityEnum.MediumPriority)
         {
             return(ClassEnum.Class3);
         }
         if (a_Priority == PriorityEnum.BasicPriority)
         {
             return(ClassEnum.Class4);
         }
     }
     throw new ArgumentException(string.Format("Unknown IUCN category: {0}", a_Category));
 }