public object Get() { var task = Request.RequestUri.Segments.LastOrDefault().ToUpper(); switch (task) { case "ROUTES": var result = _manager.GetRouteList().Select(s => (RouteViewModel)s.Value) .OrderBy(x => x.Symbol) .ToList(); return(result); case "REGION": return(_manager.GetRegion()); case "NEARBY": var query = Request.RequestUri.ParseQueryString(); var stop = query["stop"]; return(_manager.GetNearbyRoutes(stop.ToUpper())); default: var manifest = _manager.GetRouteDetail(task); if (manifest == null) { return("PING"); } return(manifest); } }