public void NewEmail()
        {
            //MasterConfiguration.MConfiguration.SetConfigurationName("ConfigurationTest.config");

            var builder = new ContainerBuilder();

            //builder.RegisterModule<CalculateEmails.Service.Autofac>();
            //builder.RegisterModule<CalculateEmails.ServiceClient.AutofacModule>();
            builder.RegisterType <StatsClient>().As <IStatsClient>();
            builder.RegisterType <DateTimePT.DateTimeTools>().As <DateTimePT.IDateTimeTools>();
            builder.RegisterModule <CalculateEmails.Service.Autofac>();
            builder.RegisterType <Configuration>().As <IConfig>();

            AutofacContainer.Container = builder.Build();

            PSCalculateEmails calculateEmails = new PSCalculateEmails();

            calculateEmails.OnTest();

            ProcessingClient client = new ProcessingClient();

            client.ProcessOutlookMail(CalculateEmails.Contract.DataContract.InboxType.Main, CalculateEmails.Contract.DataContract.EmailActionType.Added);

            StatsClient onlineClient = new StatsClient();
            var         stats        = onlineClient.GetCalculationDay();

            Assert.AreEqual(1, stats.MailCountAdd);
        }
        static void Main(string[] args)
        {
            if (args.Length > 0)
            {
                MConfiguration.SetConfigurationFileName(args[0]);
            }
            else
            {
                MConfiguration.SetConfigurationFileName("Configuration.config");
            }
            PSCalculateEmails service = new PSCalculateEmails();

            service.OnDebug();
            Console.WriteLine("Host started");
            Console.Read();
        }
        public void PrintLastStatsDefault()
        {
            DateTime requestedDateEnd = DateTime.MinValue, requestedDateStart = DateTime.MinValue;
            DateTime Now = DateTime.Parse("2018.06.20");

            Mock <IStatsClient> client = new Mock <IStatsClient>();

            client.Setup(x => x.GetStats(It.IsAny <DateTime>(), It.IsAny <DateTime>()))
            .Callback((DateTime a, DateTime b) => { requestedDateStart = a; requestedDateEnd = b; })
            .Returns(calcuationDayList);

            Mock <IDateTimePT> dt = new Mock <IDateTimePT>();

            dt.Setup(x => x.Now).Returns(Now);

            var builder = new ContainerBuilder();

            builder.RegisterModule <AutofacModule>();
            builder.RegisterInstance(client.Object).As <IStatsClient>();
            builder.RegisterInstance(dt.Object).As <IDateTimePT>();
            AutofacContainer.Container = builder.Build();


            PSCalculateEmails cmdlet = new PSCalculateEmails(true);

            MasterConfiguration.MConfiguration.SetConfigurationFileName("ConfigurationTest.config");
            cmdlet.Test();

            Assert.AreEqual(Now, requestedDateEnd);
            Assert.AreEqual(Now, requestedDateStart.AddDays(10));

            cmdlet.LastDays = 2;
            cmdlet.Test();
            Assert.AreEqual(Now, requestedDateEnd);
            Assert.AreEqual(Now.AddDays(-2), requestedDateStart);

            cmdlet.StartDate = Now.AddDays(-1);
            cmdlet.Test();
            Assert.AreEqual(Now.AddDays(-1), requestedDateStart);
            Assert.AreEqual(Now, requestedDateEnd);

            cmdlet.StartDate = Now.AddDays(-10);
            cmdlet.EndDate   = Now.AddDays(-1);
            cmdlet.Test();
            Assert.AreEqual(Now.AddDays(-10), requestedDateStart);
            Assert.AreEqual(Now.AddDays(-1), requestedDateEnd);
        }