static bool CheckValidPlasticStatusFields(
            BotConfiguration.StatusProperty plasticAttributeConfig,
            out string errorMessage)
        {
            errorMessage = string.Empty;

            if (plasticAttributeConfig == null)
            {
                errorMessage = BuildFieldError("Plastic SCM status attribute configuration");
                return(false);
            }

            string propertyErrorMessage = null;

            if (!CheckValidStatusPropertyFields(
                    plasticAttributeConfig,
                    "of the status attribute for Plastic config",
                    true,
                    out propertyErrorMessage))
            {
                errorMessage += propertyErrorMessage;
            }

            return(string.IsNullOrEmpty(errorMessage));
        }
        static bool CheckValidStatusPropertyFields(
            BotConfiguration.StatusProperty statusAttributeConfig,
            string groupNameMessage,
            bool bCheckMergedValue,
            out string errorMessage)
        {
            errorMessage = string.Empty;

            if (string.IsNullOrEmpty(statusAttributeConfig.Name))
            {
                errorMessage += BuildFieldError("name " + groupNameMessage);
            }

            if (string.IsNullOrEmpty(statusAttributeConfig.ResolvedValue))
            {
                errorMessage += BuildFieldError("resolved value " + groupNameMessage);
            }

            if (string.IsNullOrEmpty(statusAttributeConfig.FailedValue))
            {
                errorMessage += BuildFieldError("failed value " + groupNameMessage);
            }

            if (!bCheckMergedValue)
            {
                return(string.IsNullOrEmpty(errorMessage));
            }

            if (string.IsNullOrEmpty(statusAttributeConfig.MergedValue))
            {
                errorMessage += BuildFieldError("merged value " + groupNameMessage);
            }

            return(string.IsNullOrEmpty(errorMessage));
        }