コード例 #1
0
        public IRuleResult RuleExecuted(Solbot solbot)
        {
            var result = new SequencedRuleResult();

            try
            {
                var tickerContext = new TickerContext(_binanceClient);

                var currentPrice = tickerContext.GetPriceValue(solbot.Strategy.AvailableStrategy);

                if (currentPrice.Success)
                {
                    solbot.Communication.Price = new PriceMessage
                    {
                        Current = currentPrice.Result
                    };
                    result.Success = true;
                    result.Message = LogGenerator.SequenceSuccess(SequenceName, $"{currentPrice.Result}");
                }
                else
                {
                    result.Success = false;
                    result.Message = LogGenerator.SequenceError(SequenceName, currentPrice.Message);
                }
            }
            catch (Exception e)
            {
                result.Success = false;
                result.Message = LogGenerator.SequenceException(SequenceName, e);
            }
            return(result);
        }
コード例 #2
0
        public IQueryable <Ticker> GetTickers()
        {
            var _db = new TickerContext(ConfigurationManager.ConnectionStrings["TickerSQLConnection"].ConnectionString);
            IQueryable <Ticker> query = _db.Tickers;

            return(query);
        }
 public void Dispose()
 {
     if (_db != null)
     {
         _db.Dispose();
         _db = null;
     }
 }
コード例 #4
0
        public void GetConfig([QueryString("id")] string tickerName)
        {
            var _db = new TickerContext(ConfigurationManager.ConnectionStrings["TickerSQLConnection"].ConnectionString);

            Ticker ticker = _db.Tickers.Where(o => o.TickerName.Equals(tickerName)).FirstOrDefault();

            lblCurrent.Text  = string.Format("$ {0:#,##0.00}", double.Parse(ticker.Current.ToString()));
            lblLastRead.Text = ticker.LastRead.ToString();
            lblTicker.Text   = tickerName;
            txtHigh.Text     = (ticker.Current + 0.5m).ToString();
            txtLow.Text      = (ticker.Current - 0.5m).ToString();
        }
コード例 #5
0
 public TaskListnerRepository(TickerContext context, ILogger <TaskListnerRepository> logger)
 {
     _context = context;
     _logger  = logger;
 }
コード例 #6
0
        static void Main(string[] args)
        {
            TwilioConf tw = new TwilioConf()
            {
                Token   = ConfigurationManager.AppSettings["SMSKeyToken"],
                From    = ConfigurationManager.AppSettings["SMSFrom"],
                Account = ConfigurationManager.AppSettings["SMSAccount"]
            };
            FinProvider fin = new FinProvider()
            {
                Name    = ConfigurationManager.AppSettings["FinProviderName"],
                Match   = ConfigurationManager.AppSettings["FinProviderMatch"],
                Replace = ConfigurationManager.AppSettings["FinProviderReplace"],
                Url     = ConfigurationManager.AppSettings["FinProviderURL"]
            };

            Console.WriteLine("Starting TickerUpdater cycle");
            TickerContext _db = new TickerContext(ConfigurationManager.ConnectionStrings["TickerSQLConnection"].ConnectionString);

            // Initialize the product database.
            Database.SetInitializer(new TickerDatabaseInit());
            while (true)
            {
                try
                {
                    foreach (Ticker ticker in _db.Tickers)
                    {
                        ticker.LastRead = DateTime.UtcNow;
                        var currRead = HTTPhandy.TickerFromAPI(fin, ticker.TickerName);
                        ticker.Current = currRead > 0 ? currRead: ticker.Current;
                        Console.WriteLine(ticker.TickerName + ": " + ticker.Current);
                    }
                    _db.SaveChanges();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                try
                {
                    var results = from t1 in _db.Tickers
                                  join t2 in _db.TickerSMSSettings on t1.TickerName equals t2.TickerName
                                  where (t1.Current <= t2.Low) || (t1.Current >= t2.High)
                                  select new
                    {
                        t1.TickerName,
                        t1.Current,
                        t2.Mobile,
                        t2.Low,
                        t2.High,
                        t1.LastRead
                    };
                    TickerSMSSettings found;
                    foreach (var smsSettings in results.ToList())
                    {
                        Console.WriteLine(smsSettings.TickerName + " " + smsSettings.Mobile + " " + smsSettings.Current);
                        found = _db.TickerSMSSettings.Where(s => s.Mobile == smsSettings.Mobile)
                                .FirstOrDefault <TickerSMSSettings>();
                        found.TickerDate = smsSettings.LastRead;
                        HTTPhandy.SendSMS(tw, found, smsSettings.Current);
                        _db.TickerSMSSettings.Remove(found);
                    }
                    _db.SaveChanges();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                Thread.Sleep(5000);
            }
        }
コード例 #7
0
 public TaskRepository(TickerContext context, IMapper mapper, ILogger <TaskRepository> logger)
 {
     _context = context;
     _mapper  = mapper;
     _logger  = logger;
 }