/// <summary>
 ///     Write all the output files to the output directory defined in the options after performing a function.
 /// </summary>
 ///
 /// <example>
 ///     The following will output a single file (`NewName.md`) to `OutputDirectory`:
 ///
 ///     ```c#
 ///         new MetalsharpProject()
 ///         .AddOutput("text", "File.md")
 ///         .Build(i => i.OutputFiles.First(file => file.Name == "File").Name = "NewName", new BuildOptions { OutputDirectory = "OutputDirectory" });
 ///     ```
 /// </example>
 ///
 /// <param name="func">
 ///     The function to perform before the files are output.
 /// </param>
 /// <param name="options">
 ///     The options to configure the building behavior.
 /// </param>
 public void Build(Action <MetalsharpProject> func, BuildOptions options)
 {
     BeforeBuild?.Invoke(this, new EventArgs());
     func(this);
     AfterBuild?.Invoke(this, new EventArgs());
     Build(options);
 }
Beispiel #2
0
        internal string ToXml()
        {
            var sb = new StringBuilder();

            sb.Append("<binding ");
            if (BeforeBuild.Any())
            {
                sb.Append($"{BindingTargets.BeforeBuild}='{string.Join(",", BeforeBuild)}' ");
            }
            if (AfterBuild.Any())
            {
                sb.Append($"{BindingTargets.AfterBuild}='{string.Join(",", AfterBuild)}' ");
            }
            if (Clean.Any())
            {
                sb.Append($"{BindingTargets.Clean}='{string.Join(",", Clean)}' ");
            }
            if (Open.Any())
            {
                sb.Append($"{BindingTargets.Open}='{string.Join(",", Open)}' ");
            }
            sb.Append("/>");
            return(sb.ToString());
        }
 private void OnAfterBuild(BuildResult result)
 => AfterBuild?.Invoke(this, new BuildResultEventArgs(result));