public void Execute()
        {
            Directory.CreateDirectory(_Output.GetReportDirectory());

            _Logger.LogInformation(200, $"Saving report to {_Output.GetReportFilePath()}");
            var client = new HttpClient();
            var body   = client.GetStringAsync(_Site.Site);

            _Logger.LogDebug(body.Result);

            var links = _LinkChecker.GetLinks(_Site.Site, body.Result);

            var checkedLinks = _LinkChecker.CheckLinks(links);

            using (var file = File.CreateText(_Output.GetReportFilePath()))
                using (var linksDb = new LinksDb())
                {
                    foreach (var link in checkedLinks.OrderBy(l => l.Exists))
                    {
                        var status = link.IsMissing ? "missing" : "OK";
                        file.WriteLine($"{status} - {link.Link}");
                        linksDb.Links.Add(link);
                    }
                    linksDb.SaveChanges();
                }
        }
Пример #2
0
        public async Task Execute(string site, OutputSettings output)
        {
            // var output = appConfig.GetSection("output").Get<OutputSettings>();
            Directory.CreateDirectory(output.ReportDirectory);

            var logger = Logs.Factory.CreateLogger <CheckLinkJob>();

            logger.LogInformation($"Saving report to {output.ReportFilePath}");

            var links = await LinkChecker.GetLinks(site);

            var checkedLinks = await LinkChecker.Check(links);

            using (var file = File.CreateText(output.ReportFilePath))
                using (var linksDb = new LinksDb())
                {
                    foreach (var link in checkedLinks.OrderBy(l => l.Exists))
                    {
                        var status = link.IsMissing ? "Missing" : "Ok";
                        await file.WriteLineAsync($"{status} - {link.Link}");

                        await linksDb.AddAsync(link);
                    }
                    await linksDb.SaveChangesAsync();
                }
        }
Пример #3
0
        static void Main(string[] args)
        {
            var config = new Config(args);

            Logs.Init(config.ConfigurationRoot);
            var logger = Logs.Factory.CreateLogger <Program>();

            Directory.CreateDirectory(config.Output.GetReportDirectory());
            logger.LogInformation(200, $"Saving report to {config.Output.GetReportDirectory()}");
            var client = new HttpClient();
            var body   = client.GetStringAsync(config.Site);

            logger.LogDebug(body.Result);

            logger.LogInformation("Links");
            var links = LinkChecker.GetLinks(config.Site, body.Result);

            links.ToList().ForEach(Console.WriteLine);
            var checkedLinks = LinkChecker.CheckLinks(links);

            using (var file = File.CreateText(config.Output.GetReportFilePath()))
                using (var linksDb = new LinksDb())
                {
                    foreach (var link in checkedLinks.OrderBy(l => l.Exists))
                    {
                        var status = link.IsMissing ? "Missing" : "OK";
                        file.WriteLine($"{status} - {link.Link}");
                        linksDb.Links.Add(link);
                        Console.WriteLine("{0} {1}", link.Id, link.Link);
                    }

                    /**
                     * docker run -d --name sqllinux-netcore -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=1Secure*Password1' -e 'MSSQL_PID=Enterprise' -p 1433:1433 -d microsoft/mssql-server-linux:2017-latest
                     * docker hub: https://hub.docker.com/r/microsoft/mssql-server-linux
                     * docker run -d --name mysql-netcore -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=Links -p 3306:3306 mysql
                     */
                    linksDb.SaveChanges();
                }
        }
Пример #4
0
        public void Execute()
        {
            Console.WriteLine("CheckLinksJob executed");
            Directory.CreateDirectory(_output.GetReportDirectoryPath());
            var client = new HttpClient();
            var body   = client.GetStringAsync(_siteSettings.Url);
            var links  = _linkChecker.GetLinks(_siteSettings.Url, body.Result);

            _logger.LogInformation(100, $"Saving report to {_output.GetReportFilePath()}");
            var checkedLinks = _linkChecker.CheckLinks(links);

            using (var file = File.CreateText(_output.GetReportFilePath()))
                using (var linksDb = new LinksDb())
                {
                    foreach (var link in checkedLinks.OrderBy(l => l.Exists))
                    {
                        var status = link.IsMissing ? "missing" : "OK";
                        file.WriteLine($"{status} - {link.Link}");
                        linksDb.Links.Add(link);
                    }

                    linksDb.SaveChanges();
                }
        }
Пример #5
0
        static void Main(string[] args)
        {
            // it is a convention to pass the applications fully qualified class name
            // as an overload into the logger to aid in more descriptive logging since it includes
            // the namespace and everything
            var config = new Config(args);

            Logs.Init(config.ConfigurationRoot);
            var logger = Logs.Factory.CreateLogger <Program>();

            Directory.CreateDirectory(config.Output.GetReportDirectory()); // could also do configuration.GetSection("output").Get<OutputSettings>(); and this would also skipping creating the new outputsettings object

            logger.LogInformation($"Saving file to {config.Output.GetReportFilePath()}");
            var client = new HttpClient();
            var body   = client.GetStringAsync(config.Site);

            logger.LogDebug(body.Result);

            var links = LinkChecker.GetLinks(config.Site, body.Result);
            // write out links
            // File.WriteAllLines(outputPath, links);
            var checkedLinks = LinkChecker.CheckLinks(links);

            using (var file = File.CreateText(config.Output.GetReportFilePath()))
                using (var linksDb = new LinksDb())
                // using is like a try block, allows the system to drop the connection if something does wrong
                {
                    foreach (var link in checkedLinks.OrderBy(l => l.IsMissing))
                    {
                        var status = link.IsMissing ? "missing" : "ok";
                        file.WriteLine($"{status} - {link.Link}");
                        linksDb.Links.Add(link);
                    }
                    linksDb.SaveChanges();
                }
        }