Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.28 KB | None | 0 0
  1.  public interface IRuner : ISuccess, IError
  2.     {
  3.         void Run(int number);
  4.     }
  5.  
  6.     public interface ISuccess
  7.     {
  8.         IError OnSuccess(Action onSuccess);
  9.     }
  10.  
  11.     public interface IError
  12.     {
  13.         IRuner OnError(Action onError);
  14.     }
  15.  
  16.     public class InfinityMeshRuner : IRuner
  17.     {
  18.         public Action OnSuccessHandler { get; set; }
  19.         public Action OnErrorHandler { get; set; }
  20.  
  21.         public InfinityMeshRuner()
  22.         {
  23.         }
  24.  
  25.         public InfinityMeshRuner(InfinityMeshRuner souroce)
  26.         {
  27.             OnSuccessHandler = souroce.OnSuccessHandler;
  28.             OnErrorHandler = souroce.OnErrorHandler;
  29.         }
  30.  
  31.         public IError OnSuccess(Action onSuccess)
  32.         {
  33.             return new InfinityMeshRuner(this) { OnSuccessHandler = onSuccess};
  34.         }
  35.  
  36.         public IRuner OnError(Action onError)
  37.         {
  38.             return new InfinityMeshRuner(this) { OnErrorHandler = onError };
  39.         }
  40.  
  41.         public void Run(int number)
  42.         {
  43.             switch (number % 2)
  44.             {
  45.                 case 0:
  46.                     OnSuccessHandler();
  47.                     break;
  48.                 default:
  49.                     OnErrorHandler();
  50.                     break;
  51.             }
  52.         }
  53.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement