Пример #1
0
        private static int EnsureDirectoryToScanAndRefFileExistsAndStartScan(ScanOptions opts)
        {
            if (opts.WhatIf)
            {
                Console.WriteLine("Skipping scan due to --whatif argument");
                WhatIf.IWouldScan(opts);
                return(ExitCodes.Success);
            }

            if (!Directory.Exists(opts.DirectoryToScan))
            {
                Console.WriteLine($"{opts.DirectoryToScan} does not exist");
                return(ExitCodes.ScanDirDoesNotExist);
            }

            if (opts.ReferenceFileIsSpecified && !File.Exists(opts.ReferenceFile))
            {
                Console.WriteLine($"{opts.ReferenceFile} does not exist");
                return(ExitCodes.RefFileDoesNotExist);
            }

            ScanOptions = opts;

            var comparison = Scan();

            var report = new ReportBuilder(comparison).Build();

            MailHelper.SendReportByMailDontThrow(report.ToString(), opts);

            return(ExitCodes.Success);
        }
Пример #2
0
        internal static void IWouldScan(ScanOptions opts)
        {
            var fsEntries = EnumerateFsEntries(opts.DirectoryToScan);

            Console.WriteLine("Here's what I would do:");
            Console.WriteLine($"I would scan {opts.DirectoryToScan} which has {fsEntries.Count()} files and directories");
            Console.WriteLine($"After that, I'll compare the scan result with {opts.ReferenceFile}");
        }
Пример #3
0
 internal static void SendReportByMailDontThrow(string mailBody, ScanOptions opts)
 {
     try
     {
         SendReportByMail(mailBody, opts);
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex);
     }
 }
Пример #4
0
        internal static void SendReportByMail(string mailBody, ScanOptions opts)
        {
            var mailCfg = CreateMailConfiguration();

            var mailer = new Mailer(mailCfg);
            var msg    = new MailMessage
            {
                Sender     = new MailAddress(mailCfg.Sender),
                Recipients = mailCfg.Recipients.Select(m => new MailAddress(m)).ToList(),
                Subject    = $"Directory scan of {opts.DirectoryToScan}",
                Body       = mailBody
            };

            mailer.SendMail(msg);
        }