public BinanceKeyAndSecret(PathsConfig apiKeyConfig) { if (!File.Exists(apiKeyConfig.ApiKeyConfigPath)) { throw new ArgumentException($"no api key file existing at {apiKeyConfig.ApiKeyConfigPath}."); } var readLines = File.ReadLines(apiKeyConfig.ApiKeyConfigPath).ToArray(); if (readLines.Length != 3) { throw new Exception("Binance api Key file not valid, expecting 3 lines: key, secret, tag. Maybe you are targeting a KuCoin Api Key?"); } Key = readLines[0]; Secret = readLines[1]; Tag = readLines[2]; }
public AccountFileRepository(IFileRepositoryConfig fileRepositoryConfig, Func <Trade, TradeAbstracted> tradeAbstractedFactory, Func <ManuallyExtractedTrade, ManuallyExtractedTradeAbstracted> usdcBtcTradeAbstractedFactory, PathsConfig pathsConfig) { _tradeAbstractedFactory = tradeAbstractedFactory; _usdcBtcTradeAbstractedFactory = usdcBtcTradeAbstractedFactory; _tag = fileRepositoryConfig.Account; var commonDirectory = Path.Combine(pathsConfig.ExtractFolder, CommonFolderName); if (!Directory.Exists(commonDirectory)) { Directory.CreateDirectory(commonDirectory); } _accountDirectory = Path.Combine(pathsConfig.ExtractFolder, _tag); if (!Directory.Exists(_accountDirectory)) { Directory.CreateDirectory(_accountDirectory); } _accountInfoFileName = Path.Combine(_accountDirectory, "AccountInfo.json"); _depositFileName = Path.Combine(_accountDirectory, "Deposit.json"); _kcDepositFileName = Path.Combine(_accountDirectory, "KcDeposit.json"); _withdrawFileName = Path.Combine(_accountDirectory, "Withdraw.json"); _kcWithdrawFileName = Path.Combine(_accountDirectory, "KcWithdraw.json"); _dividendsFileName = Path.Combine(_accountDirectory, "Dividends.json"); _dustsFileName = Path.Combine(_accountDirectory, "Dusts.json"); _tradingRulesFileName = Path.Combine(commonDirectory, "TradingRules.json"); _histoPricesFileName = Path.Combine(commonDirectory, "HistoPrices.json"); _histoPricesManualFileName = Path.Combine(_accountDirectory, "HistoPricesManual.json"); _kcTradesFileName = Path.Combine(_accountDirectory, "KcTrades.json"); _kcBalancesFileName = Path.Combine(_accountDirectory, "KcBalances.json"); _tradesFileName = Path.Combine(_accountDirectory, "Trades.json"); Account = _tag; }
public DaemonConfig(Version version, CommunicationConfig communication, CacheConfig cache, PathsConfig paths) { this.Version = version; this.Communication = communication; this.Cache = cache; this.Paths = paths; }
public ZipBackupCreator(ILogger <BackupCreatorService> logger, PathsConfig pathsConfig) { _logger = logger; _pathsConfig = pathsConfig; }
public LocalDataRetrieverComposite(Func <ManuallySetFileRepositoryConfig, AccountFileRepository> localDataRetrieverFactory, ILocalDataRetrieverCompositeConfig config, PathsConfig pathsConfig) { var accountConfigs = config.Account.Split(',').Select(t => t.Trim()).ToHashSet(); bool ShouldBeIncluded(string fullPath) { if (accountConfigs.Count == 0 || accountConfigs.Count == 1 && "all".Equals(accountConfigs.Single(), StringComparison.InvariantCultureIgnoreCase)) { return(true); } var accountDirectoryName = Path.GetFileName(fullPath); return(accountConfigs.Contains(accountDirectoryName)); } _localDataRetrievers = Directory.GetDirectories(pathsConfig.ExtractFolder) .Where(t => !t.EndsWith(AccountFileRepository.CommonFolderName)) .Where(ShouldBeIncluded) .Select(t => new ManuallySetFileRepositoryConfig(Path.GetFileName(t))) .Select(localDataRetrieverFactory.Invoke) .ToImmutableArray(); }
public CapitalGainReportSaver(TaxMethodology taxMethodology, CurrentFiat currentFiat, PathsConfig pathsConfig) { SavingFolder = AccountFileRepository.GetFolder(Path.Combine(pathsConfig.ReportGenerationFolder, $"{currentFiat.Name}_{taxMethodology}_{DateTime.Today:yyyyMMdd}")); File.Copy("Config.json", Path.Combine(SavingFolder, "Config.json")); }