예제 #1
0
 public ILazyStatus Next(ILazyStatus status)
 {
     try
     {
         return(status.IsAccepted ? Accepted.New(predicate.Invoke(status.Object).IsTrue ? lambda.Invoke(status.Object) : status.Object) : status);
     }
     catch (Exception exception)
     {
         return(new Failed(exception));
     }
 }
예제 #2
0
 public ILazyStatus Next(ILazyStatus status)
 {
     if (status.IsAccepted)
     {
         return(++index < count ? status : new Ended());
     }
     else
     {
         return(status);
     }
 }
예제 #3
0
        public ILazyStatus Next(ILazyStatus status)
        {
            if (status.IsAccepted && skipping)
            {
                if (predicate.Invoke(status.Object).IsTrue)
                {
                    return(new Skipped());
                }

                skipping = false;
            }

            return(status);
        }
예제 #4
0
        public ILazyStatus Next(ILazyStatus status)
        {
            if (status.IsAccepted && taking)
            {
                if (!predicate.Invoke(status.Object).IsTrue)
                {
                    return(status);
                }

                taking = false;
            }

            return(new Ended());
        }
예제 #5
0
 public ILazyStatus Next(ILazyStatus status) => ++ index < count ? new Skipped() : status;