/// <summary>
 /// <see cref="PipeRequest"/>を受け取り、<see cref="PipeResponse"/>を返し引数を一つ受け取るメソッドを<see cref="Pipe"/>に登録します。
 /// </summary>
 /// <param name="source">登録先の<see cref="Pipe"/></param>
 /// <param name="func">登録するメソッド</param>
 /// <param name="value">引数1</param>
 /// <param name="resumeNext">メソッドが失敗を返したときに処理を継続するかどうか</param>
 /// <returns>登録先の<see cref="Pipe"/>のインスタンス</returns>
 public static Pipe Use <T1>(this Pipe source, Func <PipeRequest, T1, PipeResponse> func, T1 value, bool resumeNext = false)
 {
     return(source.UseDefaultAction(resumeNext, req =>
     {
         return func(req, value);
     }));
 }
 /// <summary>
 /// <see cref="PipeRequest"/>を受け取り、<see cref="PipeResponse"/>を返し引数を四つ受け取るメソッドを<see cref="Pipe"/>に登録します。
 /// </summary>
 /// <param name="source">登録先の<see cref="Pipe"/></param>
 /// <param name="func">登録するメソッド</param>
 /// <param name="value1">引数1</param>
 /// <param name="value2">引数2</param>
 /// <param name="value3">引数3</param>
 /// <param name="value4">引数4</param>
 /// <param name="resumeNext">メソッドが失敗を返したときに処理を継続するかどうか</param>
 /// <returns>登録先の<see cref="Pipe"/>のインスタンス</returns>
 public static Pipe Use <T1, T2, T3, T4>(this Pipe source, Func <PipeRequest, T1, T2, T3, T4, PipeResponse> func, T1 value1, T2 value2, T3 value3, T4 value4, bool resumeNext = false)
 {
     return(source.UseDefaultAction(resumeNext, req =>
     {
         return func(req, value1, value2, value3, value4);
     }));
 }
Пример #3
0
 public static Pipe ValidateSingleValues <T1>(this Pipe source, Func <T1, ValidationResult> validator,
                                              T1 value1)
 {
     return(source.UseDefaultAction(false, (req) =>
     {
         var result = validator(value1);
         if (result.IsValid)
         {
             return req.CreateResponse(HttpStatusCode.OK);
         }
         return req.CreateResponse(HttpStatusCode.BadRequest, result);
     }));
 }
 public static Pipe Resume(this Pipe pipe, Func <PipeContext, Object, HttpStatusCode> func)
 {
     Contract.NotNull(pipe, "pipe");
     pipe.UseDefaultAction(false, (request) =>
     {
         var result = func(request.Context, request.Data);
         if (result != HttpStatusCode.OK)
         {
             return(request.CreateResponse(result));
         }
         return(request.CreateResponse(HttpStatusCode.OK, request.Data));
     });
     return(pipe);
 }
 /// <summary>
 /// <see cref="PipeRequest"/>を受け取り、<see cref="PipeResponse"/>を返すメソッドを<see cref="Pipe"/>に登録します。
 /// </summary>
 /// <param name="source">登録先の<see cref="Pipe"/></param>
 /// <param name="func">登録するメソッド</param>
 /// <param name="resumeNext">メソッドが失敗を返したときに処理を継続するかどうか</param>
 /// <returns>登録先の<see cref="Pipe"/>のインスタンス</returns>
 public static Pipe Use(this Pipe source, Func <PipeRequest, PipeResponse> func, bool resumeNext = false)
 {
     return(source.UseDefaultAction(resumeNext, func));
 }