public async Task StartAsync(string port, RouteRepository routeRepository) { this.httpListener.Prefixes.Add(string.Format("http://localhost:{0}/", port)); try { this.httpListener.Start(); } catch (Exception e) { System.Net.HttpListenerException ex = (System.Net.HttpListenerException)e; } Console.WriteLine("Listening for requests on port {0}.", port); Request request = await GetNextRequestAsync(); while (request != null) { Console.WriteLine("{0}: {1} {2}", DateTime.Now, request.Method, request.Endpoint); if (!await TryRespondAsync(request, routeRepository)) { Console.WriteLine("HTTP 404 for {0}.", request.Endpoint); } request = await GetNextRequestAsync(); } }
private bool TryRespond(Request request, RouteRepository routeRepository) { if (!routeRepository.Get.ContainsKey(request.Endpoint)) return false; routeRepository.Get[request.Endpoint](request, new Response(context.Response)); return true; }
private bool TryRespond(Request request, RouteRepository routeRepository) { if (!routeRepository.Get.ContainsKey(request.Endpoint)) { return(false); } routeRepository.Get[request.Endpoint](request, new Response(context.Response)); return(true); }
private async Task <bool> TryRespondAsync(Request request, RouteRepository routeRepository) { Dictionary <string, Action <Request, Response> > routes = routeRepository.GetRoutes(request.Method); if (routes == null || !routes.ContainsKey(request.Endpoint)) { return(false); } await Task.Run(() => { routes[request.Endpoint](request, new Response(context.Response)); }); return(true); }
public void Start(string port, RouteRepository routeRepository) { this.httpListener.Prefixes.Add(string.Format("http://localhost:{0}/", port)); this.httpListener.Start(); Console.WriteLine("Listening for requests on port {0}.", port); Request request; while (TryGetNextRequest(out request)) { Console.WriteLine("{0}: {1}", DateTime.Now, request.Endpoint); if (!TryRespond(request, routeRepository)) Console.WriteLine("No handler specified for endpoint {0}.", request.Endpoint); } }
public void Start(string port, RouteRepository routeRepository) { this.httpListener.Prefixes.Add(string.Format("http://localhost:{0}/", port)); this.httpListener.Start(); Console.WriteLine("Listening for requests on port {0}.", port); Request request; while (TryGetNextRequest(out request)) { Console.WriteLine("{0}: {1}", DateTime.Now, request.Endpoint); if (!TryRespond(request, routeRepository)) { Console.WriteLine("No handler specified for endpoint {0}.", request.Endpoint); } } }
public Server(Listener listener, RouteRepository routeRepository) { this.listener = listener; RouteRepository = routeRepository; }