コード例 #1
0
        /// <summary>
        /// Read locally downloaded Ledger
        /// </summary>
        /// <returns></returns>
        private GetLedgerResult ReadLedger()
        {
            string          pathLib = GetLedgerLibraryPath();
            GetLedgerResult res     = new GetLedgerResult
            {
                Ledger = new Dictionary <string, LedgerInfo>()
            };

            if (File.Exists(pathLib))
            {
                List <string[]> csv       = StaticLibrary.LoadCsvFile(pathLib);
                bool            isHeaders = true;
                string[]        headers   = null;
                foreach (string[] array in csv)
                {
                    if (isHeaders)
                    {
                        headers = array; isHeaders = false;
                    }
                    else
                    {
                        Tuple <string, LedgerInfo> li = DataLibraryStaticLibrary.ReadLedgerItems(array, headers);
                        res.Ledger.Add(li.Item1, li.Item2);
                    }
                }
            }
            return(res);
        }
コード例 #2
0
        /// <summary>
        /// Request the Ledger from Kraken and save it locally
        /// </summary>
        /// <param name="useKraken"></param>
        public void LoadLedger(bool useKraken = false)
        {
            GetLedgerResult res = ReadLedger();

            if (useKraken || res.Ledger.Count == 0)
            {
                GetLedgerResult res1 = GetFullKrakenLedger();
                Ledger = res1.Ledger;
                SaveLedger(Ledger);
            }
            else
            {
                Ledger = res.Ledger;
            }
        }
コード例 #3
0
        /// <summary>
        /// Request entire Ledger history from Kraken
        /// </summary>
        /// <returns></returns>
        private GetLedgerResult GetFullKrakenLedger()
        {
            GetLedgerResult res1 = GetKrakenLedger(0);
            int             ofs  = res1.Ledger.Count;

            while (ofs < res1.Count)
            {
                GetLedgerResult res2 = KrakenApi.GetLedgers(ofs: ofs);
                foreach (string key in res2.Ledger.Keys)
                {
                    res1.Ledger.Add(key, res2.Ledger[key]);
                    ofs++;
                }
            }
            return(res1);
        }