示例#1
0
        private async Task MyMiddleware(HttpContext context)
        {
            dataRepository dr      = new dataRepository(Configuration, xenvironment);
            var            bodyStr = "";

            byte[] data;
            Resp   resp = await dr.postRepository(bodyStr);

            var    req         = context.Request;
            string contentType = context.Request.ContentType;

            req.EnableRewind();
            using (StreamReader reader
                       = new StreamReader(req.Body, Encoding.UTF8, true, 1024, true))
            {
                bodyStr = reader.ReadToEnd();
            }
            req.Body.Position = 0;
            string metod        = context.Request.Method;
            string stringHeader = (context.Request.ContentType == null ? "": context.Request.ContentType);

            if (stringHeader.ToLower() == "application/json")
            {
                if ((bodyStr.Trim() != ""))
                {
                    string verbType = context.Request.Method;
                    if (verbType.ToLower() == "post")
                    {
                        resp = await dr.postRepository(bodyStr);

                        context.Response.StatusCode = resp.resp;
                        data = Encoding.UTF8.GetBytes(resp.message);
                        context.Response.ContentType = "application/json";
                        await context.Response.Body.WriteAsync(data, 0, data.Length);

                        return;
                    }
                    else if (verbType.ToLower() == "put")
                    {
                    }
                    else
                    {
                        context.Response.StatusCode = 400;
                        data = Encoding.UTF8.GetBytes("{\"message\": \"El verbo " + verbType + " no ha sido habilitado en la API \"}");
                        context.Response.ContentType = "application/json";
                        await context.Response.Body.WriteAsync(data, 0, data.Length);

                        return;
                    }
                }
                else
                {
                    context.Response.StatusCode = 400;
                    data = Encoding.UTF8.GetBytes("{\"message\": \"Debe incluir información en el Body de la petición \"}");
                    context.Response.ContentType = "application/json";
                    await context.Response.Body.WriteAsync(data, 0, data.Length);

                    return;
                }
            }
            else
            {
                context.Response.StatusCode = 500;
                data = Encoding.UTF8.GetBytes("{\"message\": \"No se aceptan solicitudes " + stringHeader.ToLower() + "\"}");
                context.Response.ContentType = "application/json";
                await context.Response.Body.WriteAsync(data, 0, data.Length);

                return;
            }
        }
示例#2
0
 public ValuesController(dataRepository dataRep)
 {
     _dataRep = dataRep;
 }