Ignite.Assets.AssetResolver.ResolvePath C# (CSharp) Method

ResolvePath() private method

private ResolvePath ( string appPath, string path ) : IEnumerable
appPath string
path string
return IEnumerable
        private IEnumerable<string> ResolvePath(string appPath, string path)
        {
            var absoluteParts = System.IO.Path.Combine(appPath, path.Replace('/', '\\').Trim('\\')).Split('\\');

            // Handle wildcards: content/scripts/*.js
            if (absoluteParts.Last().Contains('*'))
            {
                string searchPath = "";
                string searchPattern = absoluteParts.Last();
                var searchOption = System.IO.SearchOption.TopDirectoryOnly;

                for (int i = 0; i < absoluteParts.Length - 1; i++)
                {
                    // Handle recursive searching: content/scripts/**/*.js
                    if (i == absoluteParts.Length - 2 && absoluteParts[i] == "**")
                    {
                        searchOption = System.IO.SearchOption.AllDirectories;
                    }
                    else
                    {
                        searchPath += absoluteParts[i] + '\\';
                    }
                }

                return this.fileSystem.EnumerateFiles(searchPath.TrimEnd('\\'), searchPattern, searchOption);
            }
            else
            {
                return new[] { String.Join("\\", absoluteParts) };
            }
        }