Exemple #1
0
        public void CanSelectToolBilling()
        {
            ContainerContextFactory.Current.NewThreadScopedContext();
            _context = ContainerContextFactory.Current.GetContext();

            var cfg = new ThreadStaticContainerConfiguration(_context);

            cfg.RegisterAllTypes();

            using (_context.GetInstance <IUnitOfWork>())
            {
                var repo    = _context.GetInstance <IToolBillingRepository>();
                var results = repo.SelectToolBilling(DateTime.Parse("2017-02-01"));
                Assert.IsTrue(results.Count() > 0);
            }
        }
        public void Setup()
        {
            ContainerContextFactory.Current.NewThreadScopedContext();
            _context = ContainerContextFactory.Current.GetContext();

            var cfg = new ThreadStaticContainerConfiguration(_context);

            cfg.RegisterAllTypes();

            _provider = _context.GetInstance <IProvider>();
            ServiceProvider.Setup(_provider);
        }
Exemple #3
0
        public void CanGetClient()
        {
            ContainerContextFactory.Current.NewThreadScopedContext();
            _context = ContainerContextFactory.Current.GetContext();

            var cfg = new ThreadStaticContainerConfiguration(_context);

            cfg.RegisterAllTypes();

            using (_context.GetInstance <IUnitOfWork>())
            {
                var session = _context.GetInstance <ISessionManager>().Session;
                var client  = session.Get <Client>(1301);
                Assert.AreEqual("jgett", client.UserName);

                var co = session.Query <ClientOrg>().FirstOrDefault(x => x.Client.ClientID == 1301);
                Assert.AreEqual("jgett", co.Client.UserName);
            }

            ServiceProvider.Setup(_context.GetInstance <IProvider>());

            using (_context.GetInstance <IUnitOfWork>())
            {
                var client = ServiceProvider.Current.Data.Client.GetClient(1301);
                Assert.AreEqual("jgett", client.UserName);
            }

            using (_context.GetInstance <IUnitOfWork>())
            {
                var session = _context.GetInstance <ISessionManager>().Session;

                var client = session.Get <Client>(1301);
                Assert.AreEqual("jgett", client.UserName);

                var co = session.Query <ClientOrg>().FirstOrDefault(x => x.Client.ClientID == 1301);
                Assert.AreEqual("jgett", co.Client.UserName);
            }

            using (_context.GetInstance <IUnitOfWork>())
            {
                var session = _context.GetInstance <ISessionManager>().Session;

                var client = session.Get <Client>(1301);
                Assert.AreEqual("jgett", client.UserName);

                var co = session.Query <ClientOrg>().FirstOrDefault(x => x.Client.ClientID == 1301);
                Assert.AreEqual("jgett", co.Client.UserName);
            }
        }
Exemple #4
0
        public override async Task Invoke(IOwinContext context)
        {
            Uri uri = context.Request.Uri;

            IDisposable uow = null;

            if (!IsStaticContent(uri))
            {
                uow = _context.GetInstance <IDataAccessService>().StartUnitOfWork();
            }

            await Next.Invoke(context);

            if (uow != null)
            {
                uow.Dispose();
            }
        }
 public IUnitOfWork StartUnitOfWork()
 {
     return(_context.GetInstance <IUnitOfWork>());
 }
Exemple #6
0
        protected override void OnStart(string[] args)
        {
            _context = ContainerContextFactory.Current.NewThreadScopedContext();
            var cfg = new ThreadStaticContainerConfiguration(_context);

            cfg.RegisterAllTypes();
            _provider = _context.GetInstance <IProvider>();
            ServiceProvider.Setup(_provider);

            var msgq = GetMessageQueue();

            // When the service starts the queue should be cleared so we don't process a bunch of stale messages
            if (ConfigurationManager.AppSettings["PurgeQueueOnStart"] == "true")
            {
                msgq.Purge();
            }

            _thread = new Thread(() =>
            {
                while (true)
                {
                    try
                    {
                        Message msg = msgq.Receive();

                        msg.Formatter = new XmlMessageFormatter(new[]
                        {
                            typeof(WorkerRequest),
                            typeof(UpdateBillingWorkerRequest)
                        });

                        WorkerRequest req = (WorkerRequest)msg.Body;

                        using (_provider.DataAccess.StartUnitOfWork())
                        {
                            var handler    = new RequestHandler(_provider);
                            DateTime start = DateTime.Now;

                            BroadcastLogMessage($"[{start:yyyy-MM-dd HH:mm:ss}] RECV: {req.Command}", ConsoleColor.White);

                            string message = handler.Start(req);

                            DateTime end = DateTime.Now;

                            BroadcastLogMessage(message.TrimEnd(Environment.NewLine.ToCharArray()), ConsoleColor.Yellow);
                            BroadcastLogMessage($"[{end:yyyy-MM-dd HH:mm:ss}] Completed in {(end - start).TotalSeconds:0.0000}", ConsoleColor.White);

                            SendSuccessEmail(start, end, req.Command, message);
                        }
                    }
                    catch (Exception ex)
                    {
                        try
                        {
                            Program.ConsoleWriteLine(ex.ToString(), ConsoleColor.Red);
                            BroadcastLogMessage($"[{DateTime.Now:yyyy-MM-dd HH:mm:ss}] {ex}", ConsoleColor.Red);
                            SendErrorEmail(ex);
                        }
                        catch { }
                    }
                }
            });

            _thread.Start();

            BroadcastLogMessage($"[{DateTime.Now:yyyy-MM-dd HH:mm:ss}] Service started.");
        }