Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
            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));
            }
Esempio n. 3
0
            public ITryResult <T> RunTry()
            {
                ITryResult <T> selfResult;

                try {
                    selfResult = _self.RunTry();
                    _action(selfResult);
                    return(selfResult);
                }
                catch (Exception e) {
                    return(new Failure <T>(e));
                }
            }
Esempio n. 4
0
 public ITryResult <T> RunTry()
 {
     try {
         if (_selector())
         {
             return(_thenSource.RunTry());
         }
         else
         {
             return(_elseSource.RunTry());
         }
     }
     catch (Exception e) {
         return(new Failure <T>(e));
     }
 }
Esempio n. 5
0
            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));
                }
            }
Esempio n. 6
0
        public static void Execute <T>(this ITryMonad <T> self)
        {
            ITryResult <T> selfResult;

            try {
                selfResult = self.RunTry();
                if (selfResult.IsFaulted)
                {
                    return;
                }
                else
                {
                    return;
                }
            }
            catch {
                return;
            }
        }
Esempio n. 7
0
        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);
            }
        }
Esempio n. 8
0
 ITryResult <T> RunSelf()
 {
     return(_self.RunTry());
 }