namespace Umbraco.Cms.Core; /// /// Provides ways to create attempts. /// public static class Attempt { // note: // cannot rely on overloads only to differentiate between with/without status // in some cases it will always be ambiguous, so be explicit w/ 'WithStatus' methods /// /// Creates a successful attempt with a result. /// /// The type of the attempted operation result. /// The result of the attempt. /// The successful attempt. public static Attempt Succeed(TResult? result) => Attempt.Succeed(result); /// /// Creates a successful attempt with a result and a status. /// /// The type of the attempted operation result. /// The type of the attempted operation status. /// The status of the attempt. /// The result of the attempt. /// The successful attempt. public static Attempt SucceedWithStatus(TStatus status, TResult result) => Attempt.Succeed(status, result); /// /// Creates a failed attempt. /// /// The type of the attempted operation result. /// The failed attempt. public static Attempt Fail() => Attempt.Fail(); /// /// Creates a failed attempt with a result. /// /// The type of the attempted operation result. /// The result of the attempt. /// The failed attempt. public static Attempt Fail(TResult result) => Attempt.Fail(result); /// /// Creates a failed attempt with a result and a status. /// /// The type of the attempted operation result. /// The type of the attempted operation status. /// The status of the attempt. /// The result of the attempt. /// The failed attempt. public static Attempt FailWithStatus(TStatus status, TResult result) => Attempt.Fail(status, result); /// /// Creates a failed attempt with a result and an exception. /// /// The type of the attempted operation result. /// The result of the attempt. /// The exception causing the failure of the attempt. /// The failed attempt. public static Attempt Fail(TResult result, Exception exception) => Attempt.Fail(result, exception); /// /// Creates a failed attempt with a result, an exception and a status. /// /// The type of the attempted operation result. /// The type of the attempted operation status. /// The status of the attempt. /// The result of the attempt. /// The exception causing the failure of the attempt. /// The failed attempt. public static Attempt FailWithStatus(TStatus status, TResult result, Exception exception) => Attempt.Fail(status, result, exception); /// /// Creates a successful or a failed attempt, with a result. /// /// The type of the attempted operation result. /// A value indicating whether the attempt is successful. /// The result of the attempt. /// The attempt. public static Attempt If(bool condition, TResult result) => Attempt.If(condition, result); /// /// Creates a successful or a failed attempt, with a result. /// /// The type of the attempted operation result. /// The type of the attempted operation status. /// A value indicating whether the attempt is successful. /// The status of the successful attempt. /// The status of the failed attempt. /// The result of the attempt. /// The attempt. public static Attempt IfWithStatus( bool condition, TStatus succStatus, TStatus failStatus, TResult result) => Attempt.If( condition, succStatus, failStatus, result); }