private IEnumerable<string> DetermineConfigurationPath(string pathToConfigFile)
{
var configFileLocation = FindConfigFileLocation(pathToConfigFile);
var fullApplicationName = typeof (ConfigurationSectionLoader).FullName;
var fullApplicationAssembly = typeof(ConfigurationSectionLoader).Assembly.ToString().Substring(0, typeof(ConfigurationSectionLoader).Assembly.ToString().IndexOf(",", StringComparison.InvariantCultureIgnoreCase));
var configLoaderRegexString = fullApplicationName + @",[\s]{0,1}" + fullApplicationAssembly;
var configRegex = new Regex(configLoaderRegexString);
var doc = new XPathDocument(configFileLocation);
var nav = doc.CreateNavigator();
var sectionIterator = nav.Select(@"configuration/configSections");
if(sectionIterator.Count > 0)
{
foreach (var p in DetermineValidSectionElements(configRegex,String.Empty, sectionIterator)) yield return p;
}
var sectionGroupIterator = nav.Select(@"configuration/configSections/sectionGroup");
if(sectionGroupIterator.Count > 0)
{
foreach (var p in DetermineValidSectionGroups(configRegex, sectionGroupIterator)) yield return p;
}
}