public static void Execute <T, TException>(this ITryMonad <T> self, Action <T> onSuccess, Action <TException> onError) where TException : Exception { ITryResult <T> selfResult; try { selfResult = self.RunTry(); if (selfResult.IsFaulted) { if (selfResult.Exception is TException) { onError(selfResult.Exception as TException); } return; } else { onSuccess(selfResult.Value); return; } } catch (Exception e) { if (e is TException) { onError(e as TException); } return; } }
public ITryResult <TResult> RunTry() { ITryResult <T> selfResult; try { selfResult = _self.RunTry(); if (selfResult.IsFaulted) { return(new Failure <TResult>(selfResult.Exception)); } } catch (Exception e) { return(new Failure <TResult>(e)); } TResult resultValue; try { resultValue = _selector(selfResult.Value); } catch (Exception e) { return(new Failure <TResult>(e)); } return(new Success <TResult>(resultValue)); }
public ITryResult <T> RunTry() { ITryResult <T> selfResult; try { selfResult = _self.RunTry(); _action(selfResult); return(selfResult); } catch (Exception e) { return(new Failure <T>(e)); } }
public ITryResult <T> RunTry() { try { if (_selector()) { return(_thenSource.RunTry()); } else { return(_elseSource.RunTry()); } } catch (Exception e) { return(new Failure <T>(e)); } }
public ITryResult <T> RunTry() { ITryResult <T> selfResult; try { selfResult = _self.RunTry(); if (_selector(selfResult)) { return(selfResult); } else { return(_elseSource.RunTry()); } } catch (Exception e) { return(new Failure <T>(e)); } }
public static void Execute <T>(this ITryMonad <T> self) { ITryResult <T> selfResult; try { selfResult = self.RunTry(); if (selfResult.IsFaulted) { return; } else { return; } } catch { return; } }
public static void Execute <T>(this ITryMonad <T> self, Action <T> onSuccess) { ITryResult <T> selfResult; try { selfResult = self.RunTry(); if (selfResult.IsFaulted) { throw(selfResult.Exception); } else { onSuccess(selfResult.Value); return; } } catch (Exception e) { throw(e); } }
ITryResult <T> RunSelf() { return(_self.RunTry()); }