示例#1
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            ControllerActivator.loggerFactory = loggerFactory;

            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();

            //var routeBuilder = new RouteBuilder(app);
            //routeBuilder.MapRoute("echo", (context) =>
            //{
            //   var body = new StreamReader(context.Request.Body).ReadToEnd();

            //   // context.GetRouteData().Values
            //   return context.Response.WriteAsync(body);
            //});

            //app.UseRouter(routeBuilder.Build());

            var useCases = new UseCaseFactory(Configuration, loggerFactory);

            app.Map("/api/transferOn", a => a.Run(async ctx =>
            {
                TransferOn transfer  = await Parse <TransferOn>(ctx.Request.Body);
                IActionResult result = useCases.PersistTransferOn()(transfer);
                await WriteResponse(ctx.Response, result);
            }));

            app.UseMvc();
        }
 Either <Error, TransferOn> ValidateDate(TransferOn request)
 {
     if (request.Date.Date <= clock.UtcNow.Date)
     {
         return(Errors.TransferDateIsPast);
     }
     else
     {
         return(request);
     }
 }
 Either <Error, TransferOn> ValidateBic(TransferOn request)
 {
     if (!bicRegex.IsMatch(request.Bic))
     {
         return(Errors.InvalidBic);
     }
     else
     {
         return(request);
     }
 }
示例#4
0
 public Validation <Exceptional <Unit> > Handle(TransferOn request)
 => validators
 .Validate(request)
 .Map(repository.Save);
示例#5
0
 public ResultDto <Unit> BookTransferOn_v2([FromBody] TransferOn request)
 => transfers.Handle(request).ToResult();
示例#6
0
 public IActionResult BookTransferOn_v1([FromBody] TransferOn request)
 => transfers.Handle(request).Match <IActionResult>(
     Right: _ => Ok(),
     Left: BadRequest);
 public IActionResult MakeFutureTransfer([FromBody] TransferOn request)
 => transfers.Handle(request).Match(
     Invalid: BadRequest,
     Valid: result => result.Match(
         Exception: OnFaulted,
         Success: _ => Ok()));
示例#8
0
 public Either <Error, Unit> Handle(TransferOn request)
 => validators
 .Validate(request)
 .Bind(repository.Save);
示例#9
0
 Either <Error, TransferOn> Validate(TransferOn request)
 {
     throw new NotImplementedException();
 }
 public Either <Error, Unit> HandleLINQ(TransferOn request)
 => from r1 in ValidateBic(request)
 from r2 in ValidateDate(r1)
 from unit in repository.Save(r2)
 select unit;
 public Either <Error, Unit> Handle(TransferOn request)
 => Either.Of <Error, TransferOn>(request)
 .Bind(ValidateBic)
 .Bind(ValidateDate)
 .Bind(repository.Save);