Ejemplo n.º 1
0
        public void UpdateOpen(TradeStock stock)
        {
            var toUpdate  = currentStockPrices.Values.FirstOrDefault(s => s.Symbol == stock.Symbol);
            var stockDate = stock.Date;

            if (toUpdate.Date < stockDate)
            {
                toUpdate.Price = stock.Price;
                toUpdate.Date  = stockDate;
                toUpdate.Low   = stock.Price;
                toUpdate.High  = stock.Price;
            }
        }
Ejemplo n.º 2
0
 public void Add(int id, TradeStock stock)
 {
     currentStockPrices.Add(id, stock);
 }
Ejemplo n.º 3
0
        public IActionResult Trade(string symbol, int tradesharescount, string state)
        {
            var IEXTrading_API_PATH = "https://api.iextrading.com/1.0/stock/{0}/quote";

            IEXTrading_API_PATH = string.Format(IEXTrading_API_PATH, symbol);

            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

                //For IP-API
                client.BaseAddress = new Uri(IEXTrading_API_PATH);
                HttpResponseMessage response = client.GetAsync(IEXTrading_API_PATH).GetAwaiter().GetResult();
                if (response.IsSuccessStatusCode)
                {
                    var Stock = response.Content.ReadAsAsync <TradeStock>().GetAwaiter().GetResult();

                    if (HttpContext.Session.GetInt32("userid") == null)
                    {
                        ViewData["message"] = "Please login";
                        return(View("Login", "User"));
                    }
                    var uh       = new UserHelper();
                    var userlist = uh.GetUsers();
                    var userid   = HttpContext.Session.GetInt32("userid");
                    var myuser   = userlist.FirstOrDefault(u => u.Id == userid);

                    if (myuser == null)
                    {
                        return(RedirectToAction("Login", "User"));
                    }

                    var TradeStock = new TradeStock()
                    {
                        User             = myuser,
                        TradeSharesCount = tradesharescount,
                        LatestPrice      = Stock.LatestPrice,
                        CompanyName      = Stock.CompanyName,
                        Symbol           = symbol.ToUpper(),
                        State            = state,
                        LatestVolume     = Stock.LatestVolume
                    };

                    if (TradeStock.Trade())
                    {
                        ViewData["message"] = state + " of " + tradesharescount + " " + symbol.ToUpper() + " successful";
                    }
                    else
                    {
                        ViewData["message"] = state + " of " + tradesharescount + " " + symbol.ToUpper() + " unsuccessful";
                    }
                }
            }
            var states = new List <SelectListItem>()
            {
                new SelectListItem {
                    Value = "Buy", Text = "Buy"
                },
                new SelectListItem {
                    Value = "Sell", Text = "Sell"
                }
            };

            ViewBag.state = states;
            return(View("Stock"));
        }