public static bool HasMetadataKey(this IReason reason, string key) { if (string.IsNullOrEmpty(key)) { throw new ArgumentNullException(nameof(key)); } return(reason.Metadata.ContainsKey(key)); }
public static bool HasMetadata(this IReason reason, string key, Func <object, bool> predicate) { if (string.IsNullOrEmpty(key)) { throw new ArgumentNullException(nameof(key)); } if (predicate == null) { throw new ArgumentNullException(nameof(predicate)); } if (reason.Metadata.TryGetValue(key, out object actualValue)) { return(predicate(actualValue)); } return(false); }
public AndWhichConstraint <ResultAssertions, Result> HaveReason(IReason reason, string because = "", params object[] becauseArgs) { Subject.Reasons.Should().ContainEquivalentOf(reason, because, becauseArgs); return(new AndWhichConstraint <ResultAssertions, Result>(this, Subject)); }
private static IResult WithSingleCause(this IResult result, IReason cause) => HandleGenericVariant(result, nameof(WithSingleCause), cause) switch {
internal ResultException(string message, IReason reason) : this($"{message}{Environment.NewLine}{reason}") { Reason = reason; }
public DomainException(IReason reason) { Reason = reason; }
private static IResult <TValue> WithSingleCause <TValue>(this IResult <TValue> result, IReason cause) => (result, cause) switch { { result : Failed <TValue> } or { cause : Error } => new Failed <TValue>(result.Message, result.Causes.Append(cause)),