public byte[] HandleStringWebRequest(esriHttpMethod httpMethod, string requestURL, string queryString, string Capabilities, string requestData, out string responseContentType, out esriWebResponseDataType respDataType) { _serverLog.LogMessage(ServerLogger.msgType.infoStandard, _soiName + ".HandleStringWebRequest()", 200, "Request received in Operation Access SOI for HandleStringWebRequest"); IWebRequestHandler webRequestHandler = _restSOIHelper.FindRequestHandlerDelegate <IWebRequestHandler>(); if (webRequestHandler != null) { /* * Add code to manipulate requests here * Note: Intercepting and authorizing SOAP handler operation requests is not implemented. */ return(webRequestHandler.HandleStringWebRequest( httpMethod, requestURL, queryString, Capabilities, requestData, out responseContentType, out respDataType)); } responseContentType = null; respDataType = esriWebResponseDataType.esriWRDTPayload; //Insert error response here. return(null); }
private JsDelivrCatalog SetupCatalog(IWebRequestHandler webRequestHandler = null, INpmPackageSearch packageSearch = null, INpmPackageInfoFactory infoFactory = null, ICacheService cacheService = null, Dictionary <string, string> prepopulateFiles = null) { IWebRequestHandler defaultWebRequestHandler = webRequestHandler ?? new Mock <IWebRequestHandler>().Object; string cacheFolder = Environment.ExpandEnvironmentVariables(@"%localappdata%\Microsoft\Library\"); if (prepopulateFiles != null) { foreach (KeyValuePair <string, string> item in prepopulateFiles) { // put the provider IdText into the path to mimic the provider implementation string filePath = Path.Combine(cacheFolder, JsDelivrProvider.IdText, item.Key); string directoryPath = Path.GetDirectoryName(filePath); Directory.CreateDirectory(directoryPath); File.WriteAllText(filePath, item.Value); _prepopulatedFiles.Add(filePath); } } return(new JsDelivrCatalog(JsDelivrProvider.IdText, new VersionedLibraryNamingScheme(), new Mocks.Logger(), infoFactory ?? new NpmPackageInfoFactory(defaultWebRequestHandler), packageSearch ?? new NpmPackageSearch(defaultWebRequestHandler), cacheService ?? new CacheService(defaultWebRequestHandler), Path.Combine(cacheFolder, JsDelivrProvider.IdText))); }
public PhotoRequestHandler(IWebRequestHandler <Photo> webRequestHandler, ICacheManager cacheManager) { _webRequestHandler = webRequestHandler; _cacheManager = cacheManager; URL = AppSettings.PhotosApiUrl; photoKey = AppSettings.PhotosKey; }
private static JsDelivrCatalog SetupCatalog(IWebRequestHandler webRequestHandler = null) { return(new JsDelivrCatalog(JsDelivrProvider.IdText, new VersionedLibraryNamingScheme(), new Mocks.Logger(), webRequestHandler ?? new Mocks.WebRequestHandler())); }
public UserRequestHandler(IWebRequestHandler <User> webRequestHandler, ICacheManager cacheManager) { _webRequestHandler = webRequestHandler; _cacheManager = cacheManager; URL = AppSettings.UsersApiUrl; userKey = AppSettings.UsersKey; }
/// <summary> /// Constructor sets up, but does not start, the web server /// for interacting with a tablet device. /// </summary> /// <remarks> /// If a port is not provided, the DefaultPort is used /// instead. /// </remarks> public TabletHost(IWebRequestHandler handler, string localIP, int port = -1) { Handler = handler; Listener = new WebHost(localIP, port == -1 ? DefaultPort : port); Listener.OnRequest += (sender, e) => { Handler.HandleRequest(e); }; }
public JsDelivrCatalog(string providerId, ILibraryNamingScheme namingScheme, ILogger logger, IWebRequestHandler webRequestHandler) { _providerId = providerId; _libraryNamingScheme = namingScheme; _logger = logger; _webRequestHandler = webRequestHandler; }
private UnpkgCatalog SetupCatalog(IWebRequestHandler handler = null) { return(new UnpkgCatalog(UnpkgProvider.IdText, new VersionedLibraryNamingScheme(), new Mocks.Logger(), handler ?? new Mocks.WebRequestHandler())); }
public AlbumRequestHandler(IWebRequestHandler <Album> webRequestHandler, ICacheManager cacheManager) { _webRequestHandler = webRequestHandler; _cacheManager = cacheManager; URL = AppSettings.AlbumsApiUrl; albumKey = AppSettings.AlbumsKey; }
public async Task SelectLinksAsyncUnitTests(IWebRequestHandler requestHandler, string query, int count) { var handler = new GoogleHandler(requestHandler); var links = await handler.SelectLinksAsync(query, count); Assert.Equal(count, links.Count()); }
public MovieController(PostgresDataContext context, IWebRequestHandler webRequest, IShowService showService, ILogger <HomeController> logger, UserManager <AppUser> _userManager) { this._userManager = _userManager; this._context = context; this.logger = logger; this.webRequest = webRequest; this.showService = showService; }
private UnpkgCatalog SetupCatalog(IWebRequestHandler handler = null, INpmPackageSearch packageSearch = null, INpmPackageInfoFactory infoFactory = null) { return(new UnpkgCatalog(UnpkgProvider.IdText, new VersionedLibraryNamingScheme(), new Logger(), handler ?? new Mocks.WebRequestHandler(), infoFactory ?? new NpmPackageInfoFactory(), packageSearch ?? new NpmPackageSearch())); }
private static JsDelivrCatalog SetupCatalog(IWebRequestHandler webRequestHandler = null, INpmPackageSearch packageSearch = null, INpmPackageInfoFactory infoFactory = null) { return(new JsDelivrCatalog(JsDelivrProvider.IdText, new VersionedLibraryNamingScheme(), new Mocks.Logger(), webRequestHandler ?? new Mocks.WebRequestHandler(), infoFactory ?? new NpmPackageInfoFactory(), packageSearch ?? new NpmPackageSearch())); }
public UnpkgCatalog(string providerId, ILibraryNamingScheme namingScheme, ILogger logger, IWebRequestHandler webRequestHandler, INpmPackageInfoFactory packageInfoFactory, INpmPackageSearch packageSearch) { _packageInfoFactory = packageInfoFactory; _packageSearch = packageSearch; _providerId = providerId; _libraryNamingScheme = namingScheme; _logger = logger; _webRequestHandler = webRequestHandler; }
public HomeController(IWebRequestHandler webRequest, IShowService showService, ILogger <HomeController> logger, RotatingCache <List <SearchViewModel> > searchCache, UserManager <AppUser> userManager, PostgresDataContext context) { this.logger = logger; this.webRequest = webRequest; this.showService = showService; this.searchCache = searchCache; this._userManager = userManager; this._context = context; }
public byte[] HandleStringWebRequest(esriHttpMethod httpMethod, string requestURL, string queryString, string Capabilities, string requestData, out string responseContentType, out esriWebResponseDataType respDataType) { IWebRequestHandler webRequestHandler = _restSOIHelper.FindRequestHandlerDelegate <IWebRequestHandler>(); if (webRequestHandler != null) { return(webRequestHandler.HandleStringWebRequest( httpMethod, requestURL, queryString, Capabilities, requestData, out responseContentType, out respDataType)); } responseContentType = null; respDataType = esriWebResponseDataType.esriWRDTPayload; //Insert error response here. return(null); }
/// <summary> /// Gets JSON via a get request to the provided URL and converts it to a JObject /// </summary> /// <param name="webRequestHandler"></param> /// <param name="url"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public static async Task <JObject> GetJsonObjectViaGetAsync(this IWebRequestHandler webRequestHandler, string url, CancellationToken cancellationToken) { JObject result = null; using (Stream stream = await WebRequestHandler.Instance.GetStreamAsync(url, cancellationToken)) { using (StreamReader reader = new StreamReader(stream)) { string jsonText = await reader.ReadToEndAsync(); result = await Task.Factory.StartNew(() => ((JObject)JsonConvert.DeserializeObject(jsonText)), cancellationToken); } } return(result); }
public ProfileController( PostgresDataContext context, UserManager <AppUser> userManager, SignInManager <AppUser> signInManager, IOptions <IdentityCookieOptions> identityCookieOptions, IMessageService messageSender, ILoggerFactory loggerFactory, IShowService service, IWebRequestHandler webRequest) { _context = context; _webRequest = webRequest; _serviceHandler = service; _userManager = userManager; _signInManager = signInManager; _externalCookieScheme = identityCookieOptions.Value.ExternalCookieAuthenticationScheme; _messageSender = messageSender; _logger = loggerFactory.CreateLogger <ProfileController>(); }
/// <summary> /// Gets JSON via a get request to the provided URL and converts it to a JObject /// </summary> /// <param name="webRequestHandler"></param> /// <param name="url"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public static async Task <JObject> GetJsonObjectViaGetAsync(this IWebRequestHandler webRequestHandler, string url, CancellationToken cancellationToken) { _ = webRequestHandler ?? throw new ArgumentNullException(nameof(webRequestHandler)); JObject result = null; using (Stream stream = await webRequestHandler.GetStreamAsync(url, cancellationToken)) { using (StreamReader reader = new StreamReader(stream)) { string jsonText = await reader.ReadToEndAsync(); result = await Task.Factory.StartNew(() => ((JObject)JsonConvert.DeserializeObject(jsonText)), cancellationToken, TaskCreationOptions.None, TaskScheduler.Default); } } return(result); }
/// <summary> /// Constructors accepts the IP and port to listen for requests /// on and the instance that will process requests. /// </summary> public KernelWebHost(IWebRequestHandler handler, string listenIP, int listenPort) { ListenIP = IPAddress.Parse(listenIP); ListenPort = listenPort; Handler = handler; _server = new TcpListener(ListenIP, ListenPort); _server.Start(); // start infinite continuation of checking the web server #if DISABLE_WEB_TASK #warning Web Server Task is DISABLED!!!! #else _pendingTask = new PendingTask() { Parent = this }; #endif /* #warning I hate this thread. * new SingleThread() * { * Name = "Restart web host scheduler", * Step = () => * { * if ((DateTime.Now - _pendingTask.LastRan).TotalSeconds > 2.5) * { * Session.UserSession.Current.Console.Add("Had to restart scheduler"); * _pendingTask.ScheduleTask(); * } * Thread.Sleep(2500); * }, * SleepAfterStep = true * } * .Start(); */ }
public byte[] HandleStringWebRequest(esriHttpMethod httpMethod, string requestURL, string queryString, string Capabilities, string requestData, out string responseContentType, out esriWebResponseDataType respDataType) { _serverLog.LogMessage(ServerLogger.msgType.infoStandard, _soiName + ".HandleStringWebRequest()", 200, "Request received in Server Object Interceptor for HandleStringWebRequest"); /* * Add code to manipulate requests here */ IWebRequestHandler webRequestHandler = _restSOIHelper.FindRequestHandlerDelegate <IWebRequestHandler>(); if (webRequestHandler != null) { return(webRequestHandler.HandleStringWebRequest( httpMethod, requestURL, queryString, Capabilities, requestData, out responseContentType, out respDataType)); } responseContentType = null; respDataType = esriWebResponseDataType.esriWRDTPayload; //Insert error response here. return(null); }
public DnsDetailProvider(ICacheManager _cacheManager, IWebRequestHandler _webRequestHandler) { this.cacheManager = _cacheManager; this.webRequestHandler = _webRequestHandler; }
public WebServer(IWebRequestHandler requestHandler, int port) { this.requestHandler = requestHandler; this.port = port; tcpListener = new TcpListener(IPAddress.Loopback, port); }
public NpmPackageSearch(IWebRequestHandler webRequestHandler) { _requestHandler = webRequestHandler; }
/// <summary> /// Initializes a new Web class in accordance to the IWebRequestHandler IResponse provided. /// </summary> /// <param name="webRequestHandler"></param> public Web(IWebRequestHandler <IResponse> webRequestHandler) { _webRequestHandler = webRequestHandler; }
public async Task <Movie> GetMovieDetails(int?id, PostgresDataContext _context, IWebRequestHandler webRequest) { if (id == null) { return((Movie)NotFound()); } var movie = await _context.Movies .Include(m => m.MovieService) .Include(m => m.MovieGenre) .SingleOrDefaultAsync(m => m.ID == id); var loadGenres = _context.Genres .Include(m => m.MovieGenre) .ToDictionary(x => x.ID, x => x); var loadServices = _context.Services .Include(m => m.MovieService) .ToDictionary(x => x.Source, x => x); //switch cast to string separated by ; if (movie == null) { //get show details var response = await webRequest.Get(this.ConvertToMovieDetail(id.Value)); if (!response.IsSuccessStatusCode) { return((Movie)NotFound()); } var content = await response.Content.ReadAsStringAsync(); var json = JObject.Parse(content); // may want to come up with a new way to get these values out. // instead of pulling values out manually List <Synonym> synonyms = json["alternate_titles"] .Children() .Select(x => new Synonym() { ShowID = id.Value, Title = x.ToString() }) .ToList(); List <Genre> genres = json["genres"] .Children() .Select(x => new Genre() { ID = (int)JObject.Parse(x.ToString())["id"], Title = (string)JObject.Parse(x.ToString())["title"] }) .ToList(); List <MovieGenre> movieGenres = new List <MovieGenre>(); foreach (var genre in genres) { loadGenres.TryGetValue(genre.ID, out Genre getGenre); if (getGenre == null) { getGenre = genre; } movieGenres.Add(new MovieGenre(id.Value, getGenre.ID, null, getGenre)); } List <string> cast = json["cast"] .Children() .Select(x => (string)JObject.Parse(x.ToString())["name"]) .ToList(); string castString = "No cast available."; if (cast.Count > 0) { castString = cast[0]; cast.Remove(castString); foreach (var str in cast) { castString = castString + ";" + str; } } //get service details List <Service> services = new List <Service>(); Dictionary <string, string> links = new Dictionary <string, string>(); foreach (var x in json["free_web_sources"].Children()) { var source = (string)JObject.Parse(x.ToString())["source"]; services.Add(new Service() { Name = (string)JObject.Parse(x.ToString())["display_name"], Source = source }); links.Add(source, (string)JObject.Parse(x.ToString())["link"]); } foreach (var x in json["tv_everywhere_web_sources"].Children()) { var source = (string)JObject.Parse(x.ToString())["source"]; services.Add(new Service() { Name = (string)JObject.Parse(x.ToString())["display_name"], Source = source }); links.Add(source, (string)JObject.Parse(x.ToString())["link"]); } foreach (var x in json["subscription_web_sources"].Children()) { var source = (string)JObject.Parse(x.ToString())["source"]; services.Add(new Service() { Name = (string)JObject.Parse(x.ToString())["display_name"], Source = source }); links.Add(source, (string)JObject.Parse(x.ToString())["link"]); } foreach (var x in json["purchase_web_sources"].Children()) { var source = (string)JObject.Parse(x.ToString())["source"]; services.Add(new Service() { Name = (string)JObject.Parse(x.ToString())["display_name"], Source = source }); links.Add(source, (string)JObject.Parse(x.ToString())["link"]); } List <MovieService> movieServices = new List <MovieService>(); HashSet <string> check = new HashSet <string>(); foreach (var ser in services) { loadServices.TryGetValue(ser.Source, out Service getService); if (getService != null && !check.Contains(ser.Name)) { check.Add(ser.Name); movieServices.Add(new MovieService(id.Value, getService.ID, null, getService, links[getService.Source])); } } string poster = (string)json["poster_400x570"]; poster.Replace("http://", "https://"); string artwork = poster; var movieResponse = await webRequest.Get(this.ConvertToMovieImage(id.Value)); if (!movieResponse.IsSuccessStatusCode) { return((Movie)NotFound()); } var movieContent = await movieResponse.Content.ReadAsStringAsync(); var movieJson = JObject.Parse(movieContent); JToken results = movieJson["results"]; if (results.Count() > 0) { JToken thumbnails = results["thumbnails"]; if (thumbnails != null) { var artworkToken = thumbnails.First; artwork = artworkToken["medium"]["url"].ToString(); artwork.Replace("http://", "https://"); } } movie = new Movie() { ID = (int)json["id"], Title = (string)json["title"], Poster = poster, Artwork = artwork, Desc = (string)json["overview"], Aired = json["release_date"].ToString().Substring(0, 4), Rating = (string)json["rating"], Cast = castString, MovieGenre = movieGenres, MovieService = movieServices }; _context.Add(movie); _context.SaveChanges(); } return(movie); }
public async Task <Show> GetShowDetails(int?id, PostgresDataContext _context, IWebRequestHandler webRequest) { if (id == null) { return((Show)NotFound()); } var show = await _context.Shows .Include(m => m.ShowService) .Include(m => m.ShowGenre) .SingleOrDefaultAsync(m => m.ID == id); var loadGenres = _context.Genres .Include(m => m.ShowGenre) .ToDictionary(x => x.ID, x => x); var loadServices = _context.Services .Include(m => m.ShowService) .ToDictionary(x => x.Source, x => x); //switch cast to string separated by ; if (show == null) { //get show details var response = await webRequest.Get(this.ConvertToShowDetail(id.Value)); if (!response.IsSuccessStatusCode) { return((Show)NotFound()); } var content = await response.Content.ReadAsStringAsync(); var json = JObject.Parse(content); // may want to come up with a new way to get these values out. // instead of pulling values out manually List <Synonym> synonyms = json["alternate_titles"] .Children() .Select(x => new Synonym() { ShowID = id.Value, Title = x.ToString() }) .ToList(); List <Genre> genres = json["genres"] .Children() .Select(x => new Genre() { ID = (int)JObject.Parse(x.ToString())["id"], Title = (string)JObject.Parse(x.ToString())["title"] }) .ToList(); List <string> cast = json["cast"] .Children() .Select(x => (string)JObject.Parse(x.ToString())["name"]) .ToList(); string castString = "No cast available."; if (cast.Count > 0) { castString = cast[0]; cast.Remove(castString); foreach (var str in cast) { castString = castString + ";" + str; } } //get service details var serviceResponse = await webRequest.Get(this.ConvertToServices(id.Value)); if (!serviceResponse.IsSuccessStatusCode) { return((Show)NotFound()); } var serviceContent = await serviceResponse.Content.ReadAsStringAsync(); var serviceJson = JObject.Parse(serviceContent); // TODO: support more than just web links (such as ios + android) List <Service> services = serviceJson["results"]["web"]["episodes"]["all_sources"] .Children() .Select(x => new Service() { ID = (int)JObject.Parse(x.ToString())["id"], Name = (string)JObject.Parse(x.ToString())["display_name"], Source = (string)JObject.Parse(x.ToString())["source"] }) .ToList(); //get episodes var episodeResponse = await webRequest.Get(this.GetEpisodes(id.Value, 1, 0)); if (!episodeResponse.IsSuccessStatusCode) { return((Show)NotFound()); } var episodeContent = await episodeResponse.Content.ReadAsStringAsync(); JObject episodeJson = JObject.Parse(episodeContent); Dictionary <string, string> freeWeb = null; Dictionary <string, string> tvEverywhereWeb = null; Dictionary <string, string> subscriptionWeb = null; Dictionary <string, string> purchaseWeb = null; JArray results = (JArray)episodeJson["results"]; if (results.Count > 0) { freeWeb = getDictionary(episodeJson, "free_web_sources"); tvEverywhereWeb = getDictionary(episodeJson, "tv_everywhere_web_sources"); subscriptionWeb = getDictionary(episodeJson, "subscription_web_sources"); purchaseWeb = getDictionary(episodeJson, "purchase_web_sources"); } //TODO services displayed multiple times List <ShowService> showServices = new List <ShowService>(); HashSet <string> check = new HashSet <string>(); foreach (var service in services) { loadServices.TryGetValue(service.Source, out Service getService); if (getService == null) { getService = service; } string link = ""; if (freeWeb.ContainsKey(getService.Name)) { link = freeWeb[getService.Name]; } else if (tvEverywhereWeb.ContainsKey(getService.Name)) { link = tvEverywhereWeb[getService.Name]; } else if (subscriptionWeb.ContainsKey(getService.Name)) { link = subscriptionWeb[getService.Name]; } else if (purchaseWeb.ContainsKey(getService.Name)) { link = purchaseWeb[getService.Name]; } if (!check.Contains(getService.Name)) { check.Add(getService.Name); showServices.Add(new ShowService(id.Value, getService.ID, null, getService, link)); } } List <ShowGenre> showGenres = new List <ShowGenre>(); foreach (var genre in genres) { loadGenres.TryGetValue(genre.ID, out Genre getGenre); if (getGenre == null) { getGenre = genre; } showGenres.Add(new ShowGenre(id.Value, getGenre.ID, null, getGenre)); } string poster = (string)json["poster"]; poster.Replace("http://", "https://"); string artwork = (string)json["artwork_304x171"]; artwork.Replace("http://", "https://"); show = new Show() { ID = (int)json["id"], Title = (string)json["title"], Poster = poster, Artwork = artwork, Desc = (string)json["overview"], Started = json["first_aired"].ToString().Substring(0, 4), Rating = (string)json["rating"], Cast = castString, Synonyms = synonyms, ShowGenre = showGenres, ShowService = showServices }; _context.Add(show); _context.SaveChanges(); } return(show); }
public Web(IWebRequestHandler<IResponse> webRequestHandler) { _webRequestHandler = webRequestHandler; }
public WebServer(IWebRequestHandler requestHandler, int port) { this.requestHandler = requestHandler; this.port = port; tcpListener = new TcpListener(IPAddress.Loopback, port); }
public void Add(IWebRequestHandler webRequestHandler) { if (webRequestHandler.VirtualPath == WebServerService.ROOT_VIRTUAL_PATH) Root = webRequestHandler; if(!_handlers.ContainsKey(webRequestHandler.VirtualPath)) _handlers.Add(webRequestHandler.VirtualPath, webRequestHandler); }
public MembershipService(IWebRequestHandler webRequestHandler) { _webRequestHandler = webRequestHandler; }
public bool TryGet(string virtualPath, out IWebRequestHandler webRequestHandler) { if (_handlers.ContainsKey(virtualPath)) { webRequestHandler = _handlers[virtualPath]; return true; } webRequestHandler = null; return false; }
/// <summary> /// Instantiate the CacheService /// </summary> /// <param name="requestHandler"></param> public CacheService(IWebRequestHandler requestHandler) { _requestHandler = requestHandler; }
public GoogleHandler(IWebRequestHandler webRequestHandler) { this.webRequestHandler = webRequestHandler; }