예제 #1
0
        public async Task Invoke(CancellationToken cancellationToken)
        {
            _logger.LogInformation("Invoked timercoinmarket");
            try
            {
                _logger.LogInformation(NoticeStore.NoticesCoinMarket.Count.ToString());
                _logger.LogInformation(CurrencyInfoStore.CoinMarkets.Count.ToString());

                NoticeStore.ClearCoinMarket();

                //_alertRepository.DeleteMany(x=> x.NotifyCost == null && string.IsNullOrEmpty(x.PercentNotify));

                var users = _userRepository.GetItems(z => z.NotifyCoinMarket).ToList(); //+

                var currencyPairs = await _client.GetCoinMarket();

                CurrencyInfoStore.AddCoinMarket(currencyPairs);

                var notifications = _currencyService
                                    .CreateNotifications(users, CurrencyInfoStore.CoinMarkets, 2, _alertRepository);

                await _notifyer.Notify(notifications);
            }
            catch (Exception e)
            {
                _logger.LogError("Timer coinmarket", e.Message);
            }
        }
예제 #2
0
        public async Task Invoke(CancellationToken cancellationToken)
        {
            _logger.LogInformation("Invoked timerbittrex");
            try
            {
                _logger.LogInformation(NoticeStore.NoticesBittrix.Count.ToString());
                _logger.LogInformation(CurrencyInfoStore.Bittrixes.Count.ToString());

                NoticeStore.ClearBittrix();

                var users         = _userRepository.GetItems(x => x.NotifyBittrix).ToList();
                var currencyPairs = await _client.GetBittrix();

                CurrencyInfoStore.AddBittrix(currencyPairs);

                var notifications =
                    _currencyService.CreateNotifications(users, CurrencyInfoStore.Bittrixes, 0, _alertRepository);

                await _notifyer.Notify(notifications);
            }
            catch (Exception e)
            {
                _logger.LogError("Timer bittriex", e.Message);
            }
        }
예제 #3
0
        public async Task Invoke(CancellationToken cancellationToken)
        {
            _logger.LogInformation("Invoked timerpoloniex");
            try
            {
                var currencyPairs = await _client.GetPoloniex();

                CurrencyInfoStore.AddPoloniex(currencyPairs);
            }
            catch (Exception e)
            {
                _logger.LogError("Timer poloniex", e.Message);
            }
        }
        public async Task Invoke(CancellationToken cancellationToken)
        {
            _logger.LogInformation("Invoked timercoinmarket");
            try
            {
                var currencyPairs = await _client.GetCoinMarket();

                CurrencyInfoStore.AddCoinMarket(currencyPairs);
            }
            catch (Exception e)
            {
                _logger.LogError("Timer coinmarket", e.Message);
            }
        }
        public async Task ExecuteAsync(Message message)
        {
            var currencyPairs = CurrencyInfoStore.GetLastCoinMarket();

            if (currencyPairs == null)
            {
                await _client.SendTextMessageAsync(message.Chat.Id, "Some problemes");

                return;
            }
            foreach (var pair in currencyPairs)
            {
                if (string.Equals(pair.FirstCurrency, message.Text.ToUpper()))
                {
                    await _client.SendTextMessageAsync(message.Chat.Id, pair.GetInfo(), ParseMode.Markdown);

                    return;
                }
            }
            await _client.SendTextMessageAsync(message.Chat.Id, "Currency not find");
        }
예제 #6
0
 public async Task ExecuteAsync(Message message)
 {
     var report = CurrencyInfoStore.GetLastPoloneix();
     await _client.SendTextMessageAsync(message.Chat.Id, report, ParseMode.Markdown);
 }
        public async Task ExecuteAsync(Message message)
        {
            try
            {
                var    splitStr = message.Text.Split(' ');
                var    currency = splitStr[1].ToUpper();
                var    value    = splitStr[2].Replace(',', '.');
                string sign     = "";
                double valueParsed;
                if (value.Contains("+") || value.Contains("-"))
                {
                    valueParsed = double.Parse(value.Substring(1, value.Length - 2), CultureInfo.InvariantCulture);
                    sign       += value[0];
                }
                else if (value.Contains("%"))
                {
                    valueParsed = double.Parse(value.Substring(0, value.Length - 1), CultureInfo.InvariantCulture);
                }
                else
                {
                    valueParsed = double.Parse(value.Substring(0, value.Length), CultureInfo.InvariantCulture);
                }

                var alert = _alertRepository.GetItem(z => z.UserId == message.Chat.Id && currency == z.NameCurrency);

                if (value.Contains("%"))
                {
                    var lastCoinMarcet = CurrencyInfoStore.GetLastCoinMarket()
                                         .FirstOrDefault(z => z.FirstCurrency == currency);
                    if (lastCoinMarcet == null)
                    {
                        await _client.SendTextMessageAsync(message.Chat.Id, "Currency not found");

                        return;
                    }
                    if (alert == null)
                    {
                        _alertRepository.Create(new Alert
                        {
                            NameCurrency  = currency,
                            PercentNotify = sign + valueParsed.ToString(CultureInfo.InvariantCulture),
                            UserId        = message.Chat.Id,
                            Cost          = lastCoinMarcet.Last
                        });
                    }
                    else
                    {
                        alert.PercentNotify = sign + valueParsed.ToString(CultureInfo.InvariantCulture);
                        alert.Cost          = lastCoinMarcet.Last;
                        _alertRepository.Update(alert, z => z.UserId == message.Chat.Id && currency == z.NameCurrency);
                    }
                }
                else
                {
                    if (alert == null)
                    {
                        _alertRepository.Create(new Alert
                        {
                            NameCurrency = currency,
                            NotifyCost   = valueParsed,
                            UserId       = message.Chat.Id
                        });
                    }
                    else
                    {
                        alert.NotifyCost = valueParsed;
                        _alertRepository.Update(alert, z => z.UserId == message.Chat.Id && currency == z.NameCurrency);
                    }
                }
                await _client.SendTextMessageAsync(message.Chat.Id, "Success");
            }
            catch (Exception e)
            {
                await NotSuccess(message);

                _logger.LogError("Exeption in SetAlertCommand", e.Message);
            }
        }