Beispiel #1
0
        public void Rate([FromBody] Rate model)
        {
            rateRepository.Add(model);
            var book = bookRepository.GetById(model.BookId);

            book.Rating += model.Value;
            bookRepository.Update(book);
        }
Beispiel #2
0
        static async Task InitializeDatabase()
        {
            var startDate = DateTime.Now.AddDays(-365);
            var endDate   = DateTime.Now;

            for (int i = 0; i < currencies.Length; i++)
            {
                for (int j = 0; j < currencies.Length; j++)
                {
                    var source = currencies[i];
                    var target = currencies[j];

                    if (source == target)
                    {
                        continue;
                    }

                    Console.WriteLine($"{source} {target}");
                    var rates = (await client.GetRatesAsync(source, target, startDate, endDate)).ToList();

                    var rep = new RateRepository("rates", source, target);
                    foreach (var rate in rates)
                    {
                        var r = new Models.Rate {
                            Value = rate.Value, Date = rate.Time
                        };
                        await rep.Add(r);
                    }

                    // var rep90 = new RateRepository("sma90", source, target);
                    // foreach (var rate in GetRate(rates, sma90, 0).ToList())
                    // {
                    //     await rep90.Add(rate);
                    // }

                    // var rep4 = new RateRepository("sma4", source, target);
                    // foreach (var rate in GetRate(rates, sma4, 0).ToList())
                    // {
                    //     await rep4.Add(rate);
                    // }

                    // var rep14 = new RateRepository("rsi14", source, target);
                    // foreach (var rate in GetRsi(rates, rsi14, 0).ToList())
                    // {
                    //     await rep14.Add(rate);
                    // }
                }
            }
        }
Beispiel #3
0
        static async Task MonitorAlert()
        {
            Dictionary <string, List <Rate> > cache = new Dictionary <string, List <Rate> >();
            DateTime day = DateTime.Now;

            while (true)
            {
                for (int i = 0; i < currencies.Length; i++)
                {
                    for (int j = 0; j < currencies.Length; j++)
                    {
                        var source = currencies[i];
                        var target = currencies[j];

                        if (source == target)
                        {
                            continue;
                        }

                        Console.WriteLine($"{source} {target}");
                        var key = $"{source}_{target}";
                        if (!cache.ContainsKey(key))
                        {
                            var startDate = DateTime.Now;
                            var endDate   = DateTime.Now.AddDays(-90);

                            var rates = (await client.GetRatesAsync(source, target, startDate, endDate)).ToList();
                            cache.Add(key, rates);
                        }

                        var lastRate = (await client.GetRatesAsync(source, target, DateTime.Now, DateTime.Now)).FirstOrDefault();
                        var last     = new Models.Rate();
                        last.Value = lastRate.Value;
                        // if (lastRate != null)
                        // {
                        //     var rates = cache[key];
                        //     rates.RemoveAt(rates.Count - 1);

                        //     rates.Add(lastRate);
                        // }

                        var updatedRates = cache[key];
                        var rate90       = GetRate(updatedRates, sma90);
                        var rate4        = GetRate(updatedRates, sma4);
                        var rateRsi      = GetRsi(updatedRates, rsi14);

                        TriggerAlerts(source, target, rate90, rate4, rateRsi, last);

                        if (DateTime.Now.DayOfYear != day.DayOfYear)
                        {
                            var rep90 = new RateRepository("sma90", source, target);
                            await rep90.Add(rate90);

                            var rep4 = new RateRepository("sma4", source, target);
                            await rep4.Add(rate4);

                            var rep14 = new RateRepository("rsi14", source, target);
                            await rep14.Add(rateRsi);

                            day = DateTime.Now;
                        }
                    }
                }

                return;

                System.Threading.Thread.Sleep(60000);
            }
        }