Example #1
0
        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)));
     }
 }