public List <OptionSettingItem> GetDeploymentBundleSettings(DeploymentBundleTypes deploymentBundleTypes)
        {
            var deploymentBundleDefinitionsPath = DeploymentBundleDefinitionLocator.FindDeploymentBundleDefinitionPath();

            try
            {
                foreach (var deploymentBundleFile in Directory.GetFiles(deploymentBundleDefinitionsPath, "*.deploymentbundle", SearchOption.TopDirectoryOnly))
                {
                    try
                    {
                        var content    = File.ReadAllText(deploymentBundleFile);
                        var definition = JsonConvert.DeserializeObject <DeploymentBundleDefinition>(content);
                        if (definition.Type.Equals(deploymentBundleTypes))
                        {
                            return(definition.Parameters);
                        }
                    }
                    catch (Exception e)
                    {
                        throw new Exception($"Failed to Deserialize Deployment Bundle [{deploymentBundleFile}]: {e.Message}", e);
                    }
                }
            }
            catch (IOException)
            {
                throw new NoDeploymentBundleDefinitionsFoundException("Failed to find a deployment bundle definition");
            }

            throw new NoDeploymentBundleDefinitionsFoundException("Failed to find a deployment bundle definition");
        }
        public DeploymentBundleDefinition GetDeploymentBundleDefinition(Recommendation recommendation)
        {
            var deploymentBundleDefinitionsPath = DeploymentBundleDefinitionLocator.FindDeploymentBundleDefinitionPath();

            try
            {
                foreach (var deploymentBundleFile in Directory.GetFiles(deploymentBundleDefinitionsPath, "*.deploymentbundle", SearchOption.TopDirectoryOnly))
                {
                    try
                    {
                        var content    = File.ReadAllText(deploymentBundleFile);
                        var definition = JsonConvert.DeserializeObject <DeploymentBundleDefinition>(content);
                        if (definition.Type.Equals(recommendation.Recipe.DeploymentBundle))
                        {
                            return(definition);
                        }
                    }
                    catch (Exception e)
                    {
                        throw new Exception($"Failed to Deserialize Deployment Bundle [{deploymentBundleFile}]: {e.Message}", e);
                    }
                }
            }
            catch (IOException)
            {
                throw new NoDeploymentBundleDefinitionsFoundException();
            }

            throw new NoDeploymentBundleDefinitionsFoundException();
        }