protected void Application_Start()
 {
     AreaRegistration.RegisterAllAreas();
     GlobalConfiguration.Configure(WebApiConfig.Register);
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     DocDbSettings.Init();
 }
 public DocDbSyncWorker(
     IKeyVaultClient kvClient,
     IOptions <VaultSettings> vaultSettings,
     IOptionsSnapshot <DocDbSettings> source,
     IOptionsSnapshot <DocDbSettings> target,
     IOptions <DataSyncSettings> syncSettings,
     ILoggerFactory loggerFactory,
     TelemetryClient telemetry)
 {
     _source       = source.Get("source");
     _sourceClient = new DocumentDbClient(kvClient, vaultSettings, _source, loggerFactory.CreateLogger <DocumentDbClient>(), telemetry);
     _target       = target.Get("target");
     _targetClient = new DocumentDbClient(kvClient, vaultSettings, _target, loggerFactory.CreateLogger <DocumentDbClient>(), telemetry);
     _syncSettings = syncSettings.Value;
     _logger       = loggerFactory.CreateLogger <DocDbSyncWorker>();
     _telemetry    = telemetry;
 }
        public DocDbBulkSyncWorker(
            IKeyVaultClient kvClient,
            IOptions <VaultSettings> vaultSettings,
            IOptionsSnapshot <DocDbSettings> source,
            IOptionsSnapshot <DocDbSettings> target,
            IOptions <DataSyncSettings> syncSettings,
            ILoggerFactory loggerFactory,
            TelemetryClient telemetry)
        {
            _source       = source.Get("source");
            _sourceClient = new DocumentDbClient(kvClient, vaultSettings, _source, loggerFactory.CreateLogger <DocumentDbClient>(), telemetry);
            _target       = target.Get("target");
            _targetClient = new DocumentDbClient(kvClient, vaultSettings, _target, loggerFactory.CreateLogger <DocumentDbClient>(), telemetry);
            _syncSettings = syncSettings.Value;
            _logger       = loggerFactory.CreateLogger <DocDbBulkSyncWorker>();
            _telemetry    = telemetry;

            _ru       = _telemetry.GetMetric("bulk_executor_ru", "operation_name");
            _docCount = _telemetry.GetMetric("bulk_executor_docs", "operation_name");
            _latency  = _telemetry.GetMetric("bulk_executor_latency", "operation_name");
            _error    = _telemetry.GetMetric("bulk_executor_errors", "operation_name");
        }