public void CacheFillGapTest() { var client = new BitFlyerClient(); var cacheFactory = new SqlServerCacheFactory(@"server=(local);Initial Catalog=bitflyer;Integrated Security=True"); var cache = cacheFactory.GetExecutionCache(BfProductCode.FXBTCJPY); var completed = new ManualResetEvent(false); var recentTime = DateTime.UtcNow; cache.FillGaps(client).Subscribe(exec => { if (exec.ExecutedTime.Day != recentTime.Day) { recentTime = exec.ExecutedTime; Console.WriteLine("{0} Completed", recentTime.ToLocalTime().Date); } }, () => { completed.Set(); }); completed.WaitOne(); }
static void Main(string[] args) { var productCode = BfProductCode.FXBTCJPY; var client = new BitFlyerClient(); #if SQLSERVER var connStr = @"server=(local);Initial Catalog=bitflyer;Integrated Security=True"; var cacheFactory = new SqlServerCacheFactory(connStr); #elif SQLITE var folderPath = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), Path.GetFileNameWithoutExtension(Process.GetCurrentProcess().ProcessName) ); var cacheFactory = new SqliteCacheFactory(folderPath); #endif Console.WriteLine("BitFlyerDotNet cache management utilities"); Console.WriteLine("Copyright (C) 2017-2018 Fiats Inc."); try { while (true) { Console.WriteLine(); Console.WriteLine("S)elect product"); Console.WriteLine("U)pdate recent historical executions in cache"); Console.WriteLine("F)ill fragmentations"); Console.WriteLine("A)dd specified count"); Console.WriteLine("R)ange updates"); Console.WriteLine("O)ptimize manage table"); //Console.WriteLine("I)mport SQLite cache"); Console.WriteLine(); Console.WriteLine("Hit Q key to exit."); switch (GetCh()) { case 'Q': return; case 'S': productCode = SelectProduct(); break; case 'U': UpdateRecent(client, cacheFactory, productCode); Console.WriteLine("Completed."); break; case 'F': FillGaps(client, cacheFactory, productCode); Console.WriteLine("Completed."); break; case 'A': { Console.Write("Count : "); var count = int.Parse(Console.ReadLine()); Console.Write("Are you sure to start? (y/n)"); if (GetCh() == 'Y') { StackExecutions(client, cacheFactory, productCode, count); Console.WriteLine("Completed."); } } break; case 'R': { Console.Write("Before : "); var before = int.Parse(Console.ReadLine()); Console.Write("After : "); var after = int.Parse(Console.ReadLine()); Console.Write("Are you sure to start? (y/n)"); if (GetCh() == 'Y') { GetExecutionsRange(client, cacheFactory, productCode, before, after); Console.WriteLine("Completed."); } } break; case 'O': OptimizaManageTable(cacheFactory, productCode); break; case 'I': //ImportCache(sqliteCacheFactory, sqlserverCacheFactory, productCode); break; } } } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine("Hit Q key to exit."); while (GetCh() != 'Q') { ; } } finally { } }
static void Main(string[] args) { var productCode = BfProductCode.FXBTCJPY; var client = new BitFlyerClient(); var config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", true, true) .Build(); var connStr = config.GetConnectionString("bitflyer"); var cacheFactory = new SqlServerCacheFactory(connStr); if (args.Length > 0) { productCode = Enum.Parse <BfProductCode>(args[0]); UpdateRecent(client, cacheFactory, productCode); FillGaps(client, cacheFactory, productCode); GenerateOhlc(cacheFactory, productCode); return; } Console.WriteLine("BitFlyerDotNet cache management utilities"); Console.WriteLine("Copyright (C) 2017-2021 Fiats Inc."); try { while (true) { Console.WriteLine(); Console.WriteLine("S)elect product"); Console.WriteLine("U)pdate recent historical executions in cache"); Console.WriteLine("F)ill fragmentations"); Console.WriteLine("O)ptimize manage table"); Console.WriteLine("G)enerate OHLC"); Console.WriteLine(); Console.WriteLine("Hit Q key to exit."); switch (GetCh()) { case 'Q': return; case 'S': productCode = SelectProduct(); break; case 'U': UpdateRecent(client, cacheFactory, productCode); Console.WriteLine("Completed."); break; case 'F': FillGaps(client, cacheFactory, productCode); Console.WriteLine("Completed."); break; case 'O': OptimizaManageTable(cacheFactory, productCode); break; case 'G': GenerateOhlc(cacheFactory, productCode); break; } } } catch (Exception ex) { Console.WriteLine(ex); Console.WriteLine("Hit Q key to exit."); while (GetCh() != 'Q') { ; } } finally { } }