public static DocumentModificationResult Success(IResultDetails details = null) => new DocumentModificationResult(true, details);
 public static DocumentModificationResult Failure(IResultDetails details) => new DocumentModificationResult(false, details);
 public static OperationResult Failure(IResultDetails details) => new OperationResult(false, details);
 public DocumentModificationResult(bool successful, IResultDetails details)
 {
     Successful = successful;
     Details    = details;
 }
 public OperationResult(bool successful, IResultDetails details)
 {
     Successful = successful;
     Details    = details;
 }
 public static OperationResult Success(IResultDetails details = null) => new OperationResult(true, details);
 public static TemplateModificationResult Success(IResultDetails details = null) => new TemplateModificationResult(true, details);
 public static TemplateModificationResult Failure(IResultDetails details) => new TemplateModificationResult(false, details);
 public TemplateModificationResult(bool successful, IResultDetails details)
 {
     Successful = successful;
     Details    = details;
 }
 public static ProcessingResult <TResult> Skipped(IResultDetails details) => new ProcessingResult <TResult>(StepOutcome.Skipped, default(TResult), details);
 public static ProcessingResult <TResult> Failure(IResultDetails details) => new ProcessingResult <TResult>(StepOutcome.Failure, default(TResult), details);
 public static ProcessingResult <TResult> Success(TResult result, IResultDetails details = null) => new ProcessingResult <TResult>(StepOutcome.Success, result, details);
 public ProcessingResult(StepOutcome outcome, TResult result, IResultDetails details)
 {
     Result  = result;
     Outcome = outcome;
     Details = details;
 }