public void TestThatAlreadyFailedExecutesOtherwise() { var failureValue = -1; var completes = Completes.WithFailure(100); completes .AndThen(value => value * value) .Otherwise <int>(x => failureValue = x); var outcome = completes.Await(); Assert.True(completes.HasFailed); Assert.Equal(100, outcome); Assert.Equal(100, failureValue); }
internal static ICompletes <Response> ExecuteRequest( Func <ICompletes <Response>?> executeAction, IErrorHandler errorHandler, ILogger logger) { try { return(executeAction.Invoke()? .RecoverFrom(ex => ResourceErrorProcessor.ResourceHandlerError(errorHandler, logger, ex)) !); } catch (Exception ex) { return(Completes.WithFailure(ResourceErrorProcessor.ResourceHandlerError(errorHandler, logger, ex))); } }
internal static ICompletes <Response> ExecuteRequest( Request request, MediaTypeMapper mediaTypeMapper, Func <ICompletes <IObjectResponse> > executeAction, IErrorHandler errorHandler, ILogger logger) { try { return(executeAction.Invoke() .AndThen(objectResponse => ToResponse(objectResponse, request, mediaTypeMapper, errorHandler, logger))); } catch (Exception ex) { return(Completes.WithFailure(ResourceErrorProcessor.ResourceHandlerError(errorHandler, logger, ex))); } }