Esempio n. 1
0
 public static async void SendResponse(ResponseEntity data, HttpListenerContext currentContext)
 {
     await Task.Run(async() =>
     {
         try
         {
             data.ParseHeadersIntoContext(currentContext);
             var byteBuffer = data.GetDataAsBytes();
             currentContext.Response.ContentLength64 = byteBuffer.Length;
             await currentContext.Response.OutputStream.WriteAsync(byteBuffer, 0, byteBuffer.Length);
             currentContext.Response.OutputStream.Close();
             var eventData = new ServerEventData
             {
                 status    = currentContext.Response.StatusCode,
                 exception = null,
                 message   = currentContext.Request.HttpMethod,
                 path      = currentContext.Request.Url.AbsolutePath
             };
             onRequestFinishedProcessing?.Invoke(eventData);
         }
         catch (Exception e)
         {
             try
             {
                 throw new InternalServerErrorException(e.Message, currentContext, e);
             }
             catch (InternalServerErrorException ex)
             {
                 ExceptionHandler.HandleException(ex, currentContext);
             }
         }
     });
 }
        public void NoParameters()
        {
            var entity = new ResponseEntity();

            Assert.True(Object.Equals(null, entity.Data));
            Assert.AreEqual(4, entity.GetDataAsBytes().Length);
        }
        public void ObjectAsParameter()
        {
            Dictionary <string, object> arguments = new Dictionary <string, object>();

            arguments.Add("v", new int[] { 1, 2, 3, 4 });
            var entity = new ResponseEntity(arguments);

            Assert.AreEqual(15, entity.GetDataAsBytes().Length);
            Assert.AreEqual(typeof(Dictionary <string, object>), entity.Data.GetType());
            Assert.AreEqual("{\"v\":[1,2,3,4]}", entity.JSON);
        }