public GetMarketsResponse GetAllMarkets()
        {
            GetMarketsResponse toRet = new GetMarketsResponse();

            try
            {
                var response = Client.Search <Market>(s => s
                                                      .Index("mgmt,property")
                                                      .Size(0)
                                                      .Aggregations(a => a.MultiTerms("Markets", m => m.Terms(t1 => t1.Field(f1 => f1.market.Suffix("keyword")), t2 => t2.Field(f2 => f2.state.Suffix("keyword")))))
                                                      );

                var markets = response.Aggregations.MultiTerms("Markets");
                foreach (var item in markets.Buckets)
                {
                    var aggMarket = item.Key.ElementAt(0);
                    var aggState  = item.Key.ElementAt(1);

                    Market m = new Market {
                        market = aggMarket, state = aggState
                    };
                    toRet.Markets.Add(m);
                }

                toRet.Markets = toRet.Markets.OrderBy(x => x.ToString()).ToList();
                toRet.Success = true;
            }
            catch (Exception ex)
            {
                toRet.Success      = false;
                toRet.ErrorMessage = ex.Message; //TODO: something more meaningful for user
                //TODO: log error message
            }
            return(toRet);
        }
        public static async Task UpdateHistData()
        {
            Console.WriteLine();

            //Start ProcessQueue thread:
            var SQLthread = new Thread(() => ProcessDataQueue());

            SQLthread.IsBackground = true;
            SQLthread.Name         = "Saving-Market-Histories";
            SQLthread.Start();


            //Call list of available markets from Btrex:
            GetMarketsResponse markets = await BtrexREST.GetMarkets();

            if (markets.success != true)
            {
                Console.WriteLine("    !!!!ERR GET-MARKETS>>> " + markets.message);
                return;
            }


            //Create string list of BTC market deltas only:
            List <string> BTCmarketDeltas = new List <string>();

            foreach (GetMarketsResult market in markets.result)
            {
                if (market.MarketName.Split('-')[0] == "BTC")
                {
                    BTCmarketDeltas.Add(market.MarketName);
                }
            }
            totalCount = BTCmarketDeltas.Count;

            //Download all histories, enqueue responses:
            var downloadHists = BTCmarketDeltas.Select(EnqueueData).ToArray();
            await Task.WhenAll(downloadHists);

            //Wait for Save-Data thread to complete:
            while (!savedComplete)
            {
                Thread.Sleep(100);
            }

            SQLthread.Abort();
            Console.WriteLine();

            //Update CSV files:
            Console.Write("Updating .CSVs - Just a moment...");
            UpdateOrCreateCSVs();

            //Garbage Collection to clean up SQLiteConnection
            GC.Collect();
            GC.WaitForPendingFinalizers();

            Console.WriteLine("\rUpdating .CSVs - [COMPLETE]        ");
        }
Пример #3
0
        public GetMarketsResponse GetMarkets(GetMarketsRequest request, IAuthContext authContext)
        {
            GetMarketsResponse response = new GetMarketsResponse();

            response.Items = Market.MarketEnumList.Select(x => new MarketItem {
                Value = x.Value, Text = x.Text, FlagSrc = x.FlagSrc
            }).ToList();

            return(response);
        }
        public static async Task <GetMarketsResponse> GetMarkets()
        {
            GetMarketsResponse  marketsResponse = null;
            HttpResponseMessage response        = await client.GetAsync("public/getmarkets");

            if (response.IsSuccessStatusCode)
            {
                marketsResponse = await response.Content.ReadAsAsync <GetMarketsResponse>();
            }
            return(marketsResponse);
        }
Пример #5
0
        public ActionResult <GetMarketsResponse> GetMarkets([FromQuery] GetMarketsRequest request)
        {
            GetMarketsResponse response = _accountDataService.GetMarkets(request, _authContext);

            return(Ok(response));
        }