public void UpdateUSPSTrackOrders()
        {
            while (true)
            {
                using (var db = new UnitOfWork(_log))
                {
                    var service             = new UpdateOrderTrackingStatus(_company.Id, null, TimeSpan.FromSeconds(10));
                    var actionService       = new SystemActionService(_log, _time);
                    var dbFactory           = new DbFactory();
                    var notificationService = new NotificationService(_log, _time, dbFactory);
                    var companyAddress      = new CompanyAddressService(_company);
                    var addressService      = new AddressService(null, companyAddress.GetReturnAddress(MarketIdentifier.Empty()), companyAddress.GetPickupAddress(MarketIdentifier.Empty()));
                    var ruleList            = new List <ITrackingRule>()
                    {
                    };

                    var trackingService = new TrackingManager(_log, actionService, addressService, _emailService, _time, ruleList);

                    var uspsTrackingProvider = new ComposedUspsAndCanadaPostTrackingProvider(_log, _time, _company.USPSUserId, _company.CanadaPostKeys);

                    service.UpdateAllShippedOrderStatus(trackingService,
                                                        _time,
                                                        db,
                                                        uspsTrackingProvider,
                                                        _company);
                }
                Thread.Sleep(TimeSpan.FromMinutes(0));
            }
        }
        public void UpdateFedexTrackOrders()
        {
            while (true)
            {
                using (var db = new UnitOfWork(_log))
                {
                    var service             = new UpdateOrderTrackingStatus(_company.Id, null, TimeSpan.FromSeconds(10));
                    var actionService       = new SystemActionService(_log, _time);
                    var dbFactory           = new DbFactory();
                    var notificationService = new NotificationService(_log, _time, dbFactory);
                    var companyAddress      = new CompanyAddressService(_company);
                    var addressService      = new AddressService(null, companyAddress.GetReturnAddress(MarketIdentifier.Empty()), companyAddress.GetPickupAddress(MarketIdentifier.Empty()));
                    var ruleList            = new List <ITrackingRule>()
                    {
                    };

                    var trackingService = new TrackingManager(_log, actionService, addressService, _emailService, _time, ruleList);
                    var fedexInfo       = _company.ShipmentProviderInfoList.FirstOrDefault(sh => sh.Type == (int)ShipmentProviderType.FedexOneRate);

                    var fedexTrackingProvider = new FedexTrackingApi(_log,
                                                                     _time,
                                                                     fedexInfo.EndPointUrl,
                                                                     fedexInfo.UserName,
                                                                     fedexInfo.Password,
                                                                     fedexInfo.Key1,
                                                                     fedexInfo.Key2,
                                                                     fedexInfo.Key3,
                                                                     _company.ShortName);

                    service.UpdateAllShippedOrderStatus(trackingService,
                                                        _time,
                                                        db,
                                                        fedexTrackingProvider,
                                                        _company);
                }
                Thread.Sleep(TimeSpan.FromMinutes(0));
            }
        }