internal static Response ToResponse( IObjectResponse objectResponse, Request request, MediaTypeMapper mediaTypeMapper, IErrorHandler errorHandler, ILogger logger) => Success.Of <Exception, Response>(objectResponse.ResponseFrom(request, mediaTypeMapper)) .Resolve( ex => ResourceErrorProcessor.ResourceHandlerError(errorHandler, logger, ex), response => response);
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))); } }