Example #1
0
        protected virtual void OnRequest(RequestCommandEventArgs e)
        {
            EventHandler <RequestCommandEventArgs> handler = Request;

            if (handler != null)
            {
                handler(this, e);
            }
        }
Example #2
0
 private static RequestCommandEventArgs ReadCommand(HttpListenerRequest request)
 {
     using (TextReader reader = new StreamReader(request.InputStream, Encoding.UTF8))
     {
         string requestJson = reader.ReadToEnd();
         CommandServiceEventArgs requestArgs = Resolve.Serializer.Deserialize <CommandServiceEventArgs>(requestJson);
         RequestCommandEventArgs args        = new RequestCommandEventArgs(requestArgs);
         return(args);
     }
 }
Example #3
0
        private void ListenerCallback(IAsyncResult result)
        {
            HttpListener listener = (HttpListener)result.AsyncState;

            if (!listener.IsListening)
            {
                return;
            }
            HttpListenerContext context = null;

            try
            {
                context = listener.EndGetContext(result);
            }
            catch (HttpListenerException)
            {
                return;
            }
            if (listener.IsListening)
            {
                listener.BeginGetContext(ListenerCallback, listener);
            }
            if (context == null)
            {
                return;
            }
            HttpListenerRequest request = context.Request;

            if (request.Url != Url)
            {
                throw new InvalidOperationException($"Request received with wrong URL: '{request.Url}'.");
            }
            RequestCommandEventArgs args = ReadCommand(request);

            try
            {
                using (HttpListenerResponse response = context.Response)
                {
                    response.StatusCode        = (int)HttpStatusCode.OK;
                    response.StatusDescription = "OK";
                }
            }
            catch (HttpListenerException)
            {
                return;
            }
            OnRequest(args);
        }