public CachedQuotaService(DbQuotaService service, QuotaServiceCache quotaServiceCache) : this()
 {
     Service           = service ?? throw new ArgumentNullException("service");
     QuotaServiceCache = quotaServiceCache;
     Cache             = quotaServiceCache.Cache;
     CacheNotify       = quotaServiceCache.CacheNotify;
 }
        private void Sync(object _)
        {
            try
            {
                var tenant = CoreContext.TenantManager.GetTenants().OrderByDescending(t => t.Version).FirstOrDefault();
                if (tenant != null)
                {
                    using (var wcfClient = new TariffSyncClient())
                    {
                        var quotaService = new DbQuotaService(ConfigurationManager.ConnectionStrings[config.ConnectionStringName]);

                        var oldtariffs = quotaService.GetTenantQuotas().ToDictionary(t => t.Id);
                        // save new
                        foreach (var tariff in wcfClient.GetTariffs(tenant.Version, CoreContext.Configuration.GetKey(tenant.TenantId)))
                        {
                            quotaService.SaveTenantQuota(tariff);
                            oldtariffs.Remove(tariff.Id);
                        }

                        // remove old
                        foreach (var tariff in oldtariffs.Values)
                        {
                            tariff.Visible = false;
                            quotaService.SaveTenantQuota(tariff);
                        }
                    }
                }
            }
            catch (Exception error)
            {
                log.Error(error);
            }
        }
Exemple #3
0
 public TariffSync(TenantManager tenantManager, DbRegistry dbRegistry, CoreSettings coreSettings, DbQuotaService dbQuotaService)
 {
     TenantManager  = tenantManager;
     DbRegistry     = dbRegistry;
     CoreSettings   = coreSettings;
     DbQuotaService = dbQuotaService;
 }
 public CachedQuotaService(DbQuotaService service, QuotaServiceCache quotaServiceCache)
 {
     this.service      = service ?? throw new ArgumentNullException("service");
     QuotaServiceCache = quotaServiceCache;
     cache             = quotaServiceCache.Cache;
     interval          = new TrustInterval();
     CacheExpiration   = TimeSpan.FromMinutes(10);
     cacheNotify       = quotaServiceCache.CacheNotify;
 }
Exemple #5
0
 public TariffSyncService(
     IServiceProvider serviceProvider,
     IConfiguration configuration,
     DbQuotaService dbQuotaService,
     IOptionsMonitor <ILog> options)
 {
     config          = TariffSyncServiceSection.GetSection();
     ServiceProvider = serviceProvider;
     Configuration   = configuration;
     DbQuotaService  = dbQuotaService;
     log             = options.CurrentValue;
 }
 // server part of service
 public IEnumerable <TenantQuota> GetTariffs(int version, string key)
 {
     lock (quotaServices)
     {
         if (!quotaServices.ContainsKey(version))
         {
             var cs = ConfigurationManager.ConnectionStrings[config.ConnectionStringName + version] ??
                      ConfigurationManager.ConnectionStrings[config.ConnectionStringName];
             quotaServices[version] = new DbQuotaService(cs).GetTenantQuotas();
         }
         return(quotaServices[version]);
     }
 }
Exemple #7
0
 // server part of service
 public IEnumerable <TenantQuota> GetTariffs(int version, string key)
 {
     lock (quotaServices)
     {
         if (!quotaServices.ContainsKey(version))
         {
             var cs = Configuration.GetConnectionStrings(config.ConnectionStringName + version) ??
                      Configuration.GetConnectionStrings(config.ConnectionStringName);
             quotaServices[version] = DbQuotaService.GetTenantQuotas();
         }
         return(quotaServices[version]);
     }
 }