Untitled
unknown
plain_text
5 months ago
1.8 kB
6
Indexable
public record Ok200(); public record Ok207(); public record Error401() : ResultError("a"); public record Error404() : ResultError("b"); public class Test { public async Task<Result<OneOf<Ok200,Ok207>>> TestAsync() { var code = 200; if (code == 200) { return OneOf<Ok200, Ok207>.FromT0(new Ok200()); } if (code == 204) { return OneOf<Ok200, Ok207>.FromT1(new Ok207()); } if (code == 401) { return Result<OneOf<Ok200, Ok207>>.FromError(new Error401()); } if (code == 404) { return Result<OneOf<Ok200, Ok207>>.FromError(new Error404()); } return Result<OneOf<Ok200, Ok207>>.FromError(new InvalidOperationError("Unknown code")); } public async Task ClientMethod() { var result = await TestAsync(); // jeśli był sukces (czyli mamy instancję OneOf w środku resulta w propsie Entity) if (result.IsDefined(out var success)) { if (success.TryPickT0(out var ok200, out var ok207)) { // Handle Ok200 } else { // Handle Ok207 } } else { // Handle Error if (result.Error is Error401 error401) { // Handle Error401 } else if (result.Error is Error404 error404) { // Handle Error404 } else { // Handle other errors } } } }
Editor is loading...
Leave a Comment