public void RunAsConsole(string serviceName)
        {
            dataSource = new DetectedMessageRepository();

            Console.WriteLine($"----Service {serviceName} started in console mode----");
            Console.WriteLine($"In this mode you can see last 100 records about detected emails");
            Console.WriteLine("Press Enter to get the last 100 records");
            Console.ReadLine();

            try
            {
                var messages = dataSource.GetMessages();

                Console.SetBufferSize(160, 150);
                Console.SetWindowSize(160, 40);
                Console.WriteLine("Detected emails:");
                Console.WriteLine("         Message-ID         |              Subject              |            From            |             To             |              Date             |");
                Console.WriteLine("────────────────────────────┼───────────────────────────────────┼────────────────────────────┼────────────────────────────┼───────────────────────────────┤");
                foreach (MessageModel msg in messages)
                {
                    Console.WriteLine(msg.ToFormatString());
                }

                Console.WriteLine();
                Console.Write("Press Enter to exit");
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadLine();
            }
        }
        public void Start()
        {
            var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());

            XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));

            dataSource = new DetectedMessageRepository();
            processor  = new EmailProcessor(dataSource);

            _log.Info("Service started");
            Thread thread = new Thread(new ThreadStart(processor.StartProcessMessages));

            thread.Start();
        }
Example #3
0
 public EmailProcessor(IDataSourceDetectedMessages dataSource)
 {
     this.dataSource = dataSource;
     Controller      = new JobController(Config.MaxProcessingFilesCount);
 }