namespace ColorControl.Shared.Common; public class GenericBoolResult : GenericResult { public static GenericBoolResult Success => new() { HasResult = true, Result = true }; public static new GenericBoolResult FromError(string error) { return new GenericBoolResult { HasResult = false, ErrorMessages = [error] }; } public override void AddError(string error) { base.AddError(error); Result = false; } } public class GenericResult { public bool HasResult { get; set; } public List ErrorMessages { get; protected set; } = []; public T Result { get; set; } public static GenericResult FromError(string error) { return new GenericResult { HasResult = false, ErrorMessages = [error] }; } public static GenericResult FromSuccess(T result) { return new GenericResult { HasResult = true, Result = result }; } public virtual void AddError(string error) { ErrorMessages.Add(error); } }