public static async Task Dispatch(HttpMessageEventArgs e) { await Task.Run(() => e.Request.HttpMethod switch { "GET" => GetCollection(e), "POST" => PostCollection(e), "PUT" => PutItem(e), "PATCH" => PatchItem(e), "DELETE" => DeleteItem(e), _ => UnsupportedException(e) });
/* Main Loop */ private async void Loop() { while (_listener.IsListening) { HttpListenerContext Context = await _listener.GetContextAsync(); HttpListenerRequest Request = Context.Request; HttpListenerResponse Response = Context.Response; HttpMessageEventArgs Event = new HttpMessageEventArgs { Request = Request, Response = Response }; _ = OnMessageAsync(Event).ConfigureAwait(false); } }
protected virtual async Task OnPostProcess(HttpMessageEventArgs e) { await OnPostResponse?.Invoke(e); }
/* Event dispachers */ protected virtual async Task OnMessageAsync(HttpMessageEventArgs e) { await OnMessageReceived?.Invoke(e); }