Beispiel #1
0
 public ExchangeSync(IExchangeClient exchangeClient, IExchangeSyncRepository syncRepository, IExchangeSyncChangesetsFactory exchangeSyncChangesetsFactory, ILogger <ExchangeSync> logger)
 {
     _exchangeClient = exchangeClient;
     _syncRepository = syncRepository;
     _exchangeSyncChangesetsFactory = exchangeSyncChangesetsFactory;
     _logger = logger;
 }
        /// <summary>
        /// Saves all new symbols to database.
        /// </summary>
        /// <param name="repository"><see cref="IExchangeSyncRepository"/> to save to database.</param>
        public async Task SaveChangeset(IExchangeSyncRepository repository)
        {
            if (_changedSymbols.Count == 0)
            {
                return;
            }

            var symbolsUpdated = await repository.UpdateSymbols(_changedSymbols);

            await repository.AddSyncHistory(nameof(SymbolDetailsChangeset), symbolsUpdated, $"{symbolsUpdated} symbols updated");
        }
        /// <summary>
        /// Delisted the symbols in the changeset.
        /// </summary>
        /// <param name="repository"><see cref="IExchangeSyncRepository"/> to make delisting update to database.</param>
        public async Task SaveChangeset(IExchangeSyncRepository repository)
        {
            if (_delistedSymbolIds.Count == 0)
            {
                return;
            }

            var delistedCount = await repository.DelistSymbols(_delistedSymbolIds);

            await repository.AddSyncHistory(nameof(SymbolDelistChangeset), delistedCount, $"{delistedCount} symbols delisted");
        }
        /// <summary>
        /// Saves all new symbols to database.
        /// </summary>
        /// <param name="repository"><see cref="IExchangeSyncRepository"/> to save to database.</param>
        public async Task SaveChangeset(IExchangeSyncRepository repository)
        {
            if (_newSymbols.Count == 0)
            {
                return;
            }

            var insertedCount = await repository.AddSymbols(_newSymbols);

            await repository.AddSyncHistory(nameof(NewSymbolChangeset), insertedCount, $"{insertedCount} symbols inserted");
        }