public OperacionesModule(ILogger <OperacionesModule> logger, IPedidoAsignadoManagement management) : base("/api/operaciones") { _logger = logger; _management = management; #region endpoints Post("/", async(req, res) => { try { var result = await req.BindAndValidate <Operacion>(); if (!result.ValidationResult.IsValid) { await res.AsProblem(result.ValidationResult, title: "Errores de validacion", detail: "Verificar Errors para mas detalle"); return; } string _urlRespuestaOperacion = "/api/resultados/"; /*Id generado para la operacion y la respuesta*/ var _idRespuesta = Guid.NewGuid().ToString().Substring(0, 5); result.Data.Id = _idRespuesta; _management.Guardar(result.Data); _management.Publicar(result.Data); _logger.LogInformation("operacion registrada..."); res.StatusCode = 202; res.Headers["Location"] = $"{_urlRespuestaOperacion}{_idRespuesta}"; await res.WriteAsync("operacion agregada"); } catch (Exception exception) { res.StatusCode = 500; _logger.LogError($"Falla en:{req.Method} - OperacionesModule", exception); } }); Get("/", async(req, res) => { try { IList <Operacion> _listaOperaciones = new List <Operacion>(); _listaOperaciones = _management.ListarOperaciones(); _logger.LogInformation("listando operaciones existentes..."); res.StatusCode = 200; await res.AsJson(_listaOperaciones); } catch (Exception exception) { res.StatusCode = 500; _logger.LogError($"Falla en:{req.Method} - OperacionesModule", exception); } }); #endregion After = async(ctx) => { MetricsManager.updateMetricModuloOperaciones(ctx.Request.Method, ctx.Response.StatusCode.ToString()); await ctx.Response.WriteAsync(" -- fin con statusCode: " + ctx.Response.StatusCode); return; }; }