public static IHttpResponse FindAsync( //Security security, HttpApplication application, IHttpRequest request, IProvideUrl url, ContentTypeResponse <WebIdManifest> onFound, ContentTypeResponse <Api.Resources.Manifest> onContent, ViewFileResponse <Api.Resources.Manifest> onHtml) { if (request.GetAcceptTypes().Where(accept => accept.MediaType.ToLower().Contains("html")).Any()) { return(HtmlContent(application, request, url, onHtml)); } LocateControllers(); var endpoints = Manifest.lookup .Select( type => { var endpoint = url.GetWebId(type, "x-com.orderowl:ordering"); return(endpoint); }) .ToArray(); var manifest = new WebIdManifest() { Id = Guid.NewGuid(), Endpoints = endpoints, }; return(onFound(manifest)); }
public double GetPreference(IHttpRequest request) { if (Preference != defaultPreference) { return(Preference); } var accepts = request.GetAcceptTypes(); var matches = accepts.Where(mt => mt.MediaType.ToLower() == this.MediaType); if (matches.Any()) { var match = matches.First(); if (match.Quality.HasValue) { return(match.Quality.Value); } return(0.5); } if (accepts.Where(mt => mt.MediaType.ToLower().Contains("json")).Any()) { return(0.2); } return(-0.1); }