Пример #1
0
        static async Task GetDailyCandles(string server)
        {
            string url     = $"http://{server}/api/forexdailyrealprices";
            string urlpost = $"http://{server}/api/forexdailyprices";

            while (true)
            {
                try
                {
                    var      currTime    = DateTime.Now;
                    string   currDay     = currTime.ToString("yyyyMMdd");
                    DateTime currDayDate = DateTime.ParseExact(currDay, "yyyyMMdd", CultureInfo.InvariantCulture);
                    foreach (var pair in pairs)
                    {
                        var urlgetpair = $"{url}/{pair}/{currDay}";
                        var prices     = await GetAsync <ForexPricesDTO>(urlgetpair);

                        if (prices.priceDTOs.Count() > 0)
                        {
                            var dailycandle = new ForexDailyPriceDTO()
                            {
                                Pair     = pair,
                                Open     = prices.priceDTOs.First().Ask,
                                High     = prices.priceDTOs.Select(x => x.Ask).Max(),
                                Low      = prices.priceDTOs.Select(x => x.Ask).Min(),
                                Close    = prices.priceDTOs.Last().Ask,
                                Date     = currDay,
                                Datetime = currDayDate
                            };

                            var listCandles = new List <ForexDailyPriceDTO>();
                            listCandles.Add(dailycandle);
                            var responsePOST = await PostAsync <List <ForexDailyPriceDTO> >(listCandles, urlpost);

                            Console.WriteLine("Daily Candle updated");
                        }
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
                await Task.Delay(1000 * 20);
            }
        }
Пример #2
0
        public async Task AddDailyPrice(ForexDailyPriceDTO item)
        {
            var dailyPriceLatest = _mapper.Map <ForexDailyPriceMongo>(item);

            dailyPriceLatest.Id = item.Pair + item.Date;


            var findDailyPrice = await _context.DailyPrices.FindAsync(x => x.Id == dailyPriceLatest.Id);

            if (findDailyPrice != null)
            {
                await _context.DailyPrices.DeleteOneAsync(x => x.Id == dailyPriceLatest.Id);

                await _context.DailyPrices.InsertOneAsync(dailyPriceLatest);
            }
            else
            {
                await _context.DailyPrices.InsertOneAsync(dailyPriceLatest);
            }
        }