/*******************
        * Internal methods
        *******************/

        /***
         * Think thoroughly before changing the logic below
         ***/

        /// <summary>
        /// Checks if the given processor is enabled by the config.
        /// </summary>
        /// <returns><c>true</c>, if processor is enabled, <c>false</c> otherwise.</returns>
        /// <param name="processor">Processor.</param>
        public bool IsEnabled(Processor processor)
        {
            if (!EnableQuality.IsNullOrEmpty())
            {
                return(EnableQuality.Contains("All") || EnableQuality.Contains(processor.Name) || processor.Recipes.Any(recipe => EnableQuality.Contains(recipe.Name)));
            }
            if (!DisableQuality.IsNullOrEmpty())
            {
                return(!DisableQuality.Contains("All") && !DisableQuality.Contains(processor.Name) && processor.Recipes.Any(recipe => !DisableQuality.Contains(recipe.Name)));
            }
            return(true);
        }
 /// <summary>
 /// Checks if cooking is enabled.
 /// </summary>
 /// <returns><c>true</c>, if cooking is enabled, <c>false</c> otherwise.</returns>
 public bool IsCookingEnabled()
 {
     if (!EnableQuality.IsNullOrEmpty())
     {
         return(EnableQuality.Contains("All") || EnableQuality.Contains("Cooking"));
     }
     if (!DisableQuality.IsNullOrEmpty())
     {
         return(!DisableQuality.Contains("All") && !DisableQuality.Contains("Cooking"));
     }
     return(true);
 }
        /// <summary>
        /// Checks if anything is enabled at all.
        /// </summary>
        /// <returns><c>true</c>, if anything is enabled, <c>false</c> otherwise.</returns>
        public bool IsAnythingEnabled()
        {
            if (!EnableQuality.IsNullOrEmpty())
            {
                return(true);
            }

            if (!DisableQuality.IsNullOrEmpty())
            {
                return(!DisableQuality.Contains("All"));
            }

            return(true);
        }