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 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); } }
public ShareCore(ITryMonad <T> self) { _self = self; _lazy = Lazy.Create <ITryResult <T> >(RunSelf); }
public static ITryMonad <T> Share <T>(this ITryMonad <T> self) { return(new ShareCore <T>(self)); }
public static ITryMonad <T> If <T>(ITryMonad <T> thenSource, ITryMonad <T> elseSource, Func <bool> selector) { return(new IfStaticCore <T>(thenSource, elseSource, selector)); }
public IfStaticCore(ITryMonad <T> thenSource, ITryMonad <T> elseSource, Func <bool> selector) { _thenSource = thenSource; _elseSource = elseSource; _selector = selector; }
public ToIdentityCore(ITryMonad <T> self) { _self = self; _lazy = Lazy.Create <ITryResult <T> >(RunSelf); }
public static IIdentityMonad <ITryResult <T> > ToIdentity <T>(this ITryMonad <T> self) { return(new ToIdentityCore <T>(self)); }
public static ITryMonad <TResult> SelectMany <TFirst, TSecond, TResult>(this ITryMonad <TFirst> self, Func <TFirst, ITryMonad <TSecond> > selector, Func <TFirst, TSecond, TResult> projector) { return(new SelectManyCore <TFirst, TSecond, TResult>(self, selector, projector)); }
public static ITryMonad <TResult> Select <T, TResult>(this ITryMonad <T> self, Func <T, TResult> selector) { return(new SelectCore <T, TResult>(self, selector)); }
public DoCore(ITryMonad <T> self, Action <ITryResult <T> > action) { _self = self; _action = action; }
public static ITryMonad <T> Do <T>(this ITryMonad <T> self, Action <ITryResult <T> > action) { return(new DoCore <T>(self, action)); }
public IfCore(ITryMonad <T> self, ITryMonad <T> elseSource, Func <ITryResult <T>, bool> selector) { _self = self; _elseSource = elseSource; _selector = selector; }
public SelectCore(ITryMonad <T> self, Func <T, TResult> selector) { _self = self; _selector = selector; }
public static ITryMonad <T> If <T>(this ITryMonad <T> self, ITryMonad <T> elseSource, Func <ITryResult <T>, bool> selector) { return(new IfCore <T>(self, elseSource, selector)); }
public SelectManyCore(ITryMonad <T> self, Func <T, ITryMonad <TResult> > selector) { _self = self; _selector = selector; }