/// <summary>
        /// Parse a xaml file
        /// </summary>
        /// <param name="buildInfo"></param>
        /// <returns></returns>
        private static XElement ParseXamlResourceFile(ResourceExtensionsFileInfo buildInfo)
        {
            // Read the data inside the reosurce file
            var fileData = File.ReadAllText(buildInfo.ResourcesFilePath);

            // Parse the read data
            XElement xmlData = XElement.Parse(fileData);

            return(xmlData);
        }
        /// <summary>
        /// Takes a list of <see cref="FunctionData"/> and build a C# ResourceExtensions file
        /// </summary>
        /// <param name="buildInfo"></param>
        /// <param name="functions"></param>
        /// <returns></returns>
        private static StringBuilder CreateResourceStringBuilder(ResourceExtensionsFileInfo buildInfo, IEnumerable <FunctionData> functions)
        {
            // Stringbuilder used to create the class's inner data
            StringBuilder classStringBuilder = new StringBuilder();

            // Build the class
            string       classNamespace      = $"namespace {buildInfo.ProjectNamespace}";
            string       classDeclaration    = $"public static class {buildInfo.ExtensionClassName}";
            const string functionDeclaration = "public static object ";


            // Add the namespace
            classStringBuilder.AppendLine(classNamespace);
            classStringBuilder.AppendLine("{");

            // Add namespaces includes
            foreach (var include in buildInfo.NamespaceIncludes)
            {
                classStringBuilder.Append($"using {include}");
                classStringBuilder.AppendLine(";");
            }
            ;

            // Add the class declaration
            classStringBuilder.AppendLine(classDeclaration);
            classStringBuilder.AppendLine("{");


            // Add the functions
            foreach (var function in functions)
            {
                classStringBuilder.AppendLine($"{functionDeclaration} {function.FunctionName}");
                classStringBuilder.AppendLine("{");

                classStringBuilder.AppendLine($"{function.FunctionReturn}");

                classStringBuilder.AppendLine("}");
            }
            ;


            // End class declaration
            classStringBuilder.AppendLine("};");

            // End namespace
            classStringBuilder.Append("};");


            return(classStringBuilder);
        }
 /// <summary>
 /// Creates a ResourceExtension.cs file
 /// </summary>
 /// <param name="fileData"></param>
 /// <param name="buildInfo"></param>
 private static void BuildResourceFile(StringBuilder fileData, ResourceExtensionsFileInfo buildInfo)
 {
     // Write the class data into a file
     File.WriteAllText(buildInfo.OutputFilePath, fileData.ToString());
 }