string SendResponse(HttpListenerRequest request) { try { string[] urlParts = request.RawUrl.Split('/'); string lastPart = urlParts.Length > 0? urlParts[urlParts.Length - 1] : null; Holder holder = null; if (Leagues.Count == 1) { holder = Leagues.First(); } else if (urlParts.Length > 1) { holder = Leagues.Find(x => x.Key == urlParts[1]); } if (request.RawUrl == "/") { if (Leagues.Count == 1) { return(ReportPages.OverviewPage(holder, false, ReportPages.GameHyper, OutputFormat.Svg)); } else { return(ReportPages.RootPage(Leagues)); } } else if (lastPart.EndsWith(".html")) { return(HtmlResponse(request.RawUrl, lastPart, holder)); } else { return(RestResponse(request)); } } catch (Exception ex) { return("<html><body>\n" + ex.Message + "\n<br/><br/>\n" + ex.StackTrace + "</body></html>"); throw; } }