예제 #1
0
 // If We Dont need to log . use this
 public static LEither <B> Bind <A, B>(
     this LEither <A> src,
     Func <A, B> func)
 {
     if (src.IsRight)
     {
         try { return(func(src.Right).ToLEither <B>()); }
         catch { }
     }
     return(new LEither <B>());
 }
예제 #2
0
        // 1 Bind -> Left (실패시 Left State만 내보내고 로그는 비어있다. )
        // 2 Bind -> Left
        // 3 Bind(Log) -> Left with Log (Left가 들어왔으므로 이 로그 바인드는 로그를 포함해 출력하게 된다. )

        // this method is for time logging Either Type
        public static LEither <B> Bind <A, B>(
            this LEither <A> src,
            Func <A, B> func,
            string log)
        {
            if (src.IsRight)
            {
                try { return(func(src.Right).ToLEither <B>()); }
                catch { }
            }
            var    time    = DateTime.Now.ToString("yyMMdd_HH mm ss");
            string fulllog = "Error( " + time + " ) : " + log;

            return(new LEither <B>(fulllog));
        }