private void OnHandlerStart() { foreach (var job in _jobs.GetConsumingEnumerable(CancellationToken.None)) { if (job.StartsWith("http://www") || job.StartsWith("https://www")) { _logger.LogInformation("Processing job: " + job); Shotter shotter = new Shotter(_windowSize); ScreenShotSaver ssSaver = new ScreenShotSaver(_dbConfig[0], _dbConfig[1], _dbConfig[2]); try { ScreenShotData ssData = new ScreenShotData { Url = job, Date = DateTime.UtcNow, ContentImage = shotter.TakeScreenshot(job) }; ssSaver.Create(ssData); _logger.LogInformation("Successfully imported job: " + job); } catch (Exception ex) { _logger.LogError(ex.Message); } finally { shotter.Dispose(); } } } }
private void OnHandlerStart() { foreach (var rJob in _jobs.GetConsumingEnumerable(CancellationToken.None)) { _logger.LogInformation("Processing job: " + rJob.job); ScreenShotSaver ssSaver = new ScreenShotSaver(_dbConfig[0], _dbConfig[1], _dbConfig[2]); IOUtil ioUtil = new IOUtil(); try { List <ScreenShotData> result; if (rJob.type == 1) { result = ssSaver.GetByUrl(rJob.job); } else { string minDateStr = rJob.job.Substring(0, rJob.job.IndexOf('-', 10)); string maxDateStr = rJob.job.Substring(minDateStr.Length + 1); DateTime minDate = DateTime.ParseExact(minDateStr, "yyyy-MM-dd HH:mm", null); DateTime maxDate = DateTime.ParseExact(maxDateStr, "yyyy-MM-dd HH:mm", null); result = ssSaver.GetByDateInterval(minDate, maxDate); } if (result.Count > 0) { string outputFolder = ioUtil.CleanInputAndCreteDirectory(_imagesDirectory, rJob.job); Shotter shotter = new Shotter(); foreach (var item in result) { shotter.SaveAsFile(outputFolder + "/" + item.Id.ToString() + ".png", item.ContentImage); } } } catch (Exception ex) { _logger.LogError(ex.Message); } } }