public async Task <IActionResult> QuestionsAsync(TriviaParametersViewModel triviaParameters) { int categoryId = triviaParameters.CategoryId; string difficulty = triviaParameters.Difficulty; string questionType = triviaParameters.QuestionType; int amount = triviaParameters.NumberOfQuestions; var settings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore }; string sessionToken = HttpContext.Session.GetString("ApiSessionToken"); if (sessionToken == null) { string tokenRequestUrl = @"https://opentdb.com/api_token.php?command=request"; var jsonResponse = await ApiHub.GetJson(tokenRequestUrl); var resultJToken = JsonConvert.DeserializeObject <JToken>(jsonResponse); var apiSessionToken = resultJToken["token"].ToString(); HttpContext.Session.SetString("ApiSessionToken", apiSessionToken); sessionToken = apiSessionToken; } string url = $@"https://opentdb.com/api.php?amount={amount}&category={categoryId}&difficulty={difficulty}&type={questionType}&token={sessionToken}"; var json = await ApiHub.GetJson(url); var result = JsonConvert.DeserializeObject <Questions>(json); TriviaQuestionsViewModel triviaQuestionsViewModel = new TriviaQuestionsViewModel(); triviaQuestionsViewModel.Questions = result; return(View("questions", triviaQuestionsViewModel)); }
public UserCommandDispatcher(ICommandDispatcher inner, HttpContext httpContext, ApiHub hub) { Ensure.NotNull(inner, "inner"); Ensure.NotNull(httpContext, "httpContext"); Ensure.NotNull(hub, "hub"); this.inner = inner; this.httpContext = httpContext; this.hub = hub; }
/// <summary> /// Gets Stock information from IExcloud API in form of json object and then /// deserializes it into a list of StockQuotes. /// </summary> /// <returns>List of StockQuotes to the Ticker ViewComponent</returns> public async Task <IViewComponentResult> InvokeAsync() { List <StockQuote> stocks = new List <StockQuote>(); var json = await ApiHub.GetJson(_URL); var root = JObject.Parse(json); foreach (var r in root) { var sybmol = JsonConvert.DeserializeObject <StockQuote>(r.Value["quote"].ToString()); stocks.Add(sybmol); } return(View("Default", stocks)); }
/// <summary> /// Gets Stock information from IExcloud API in form of json object and then /// deserializes it into a list of StockQuotes. /// </summary> /// <returns>List of StockQuotes to the Ticker ViewComponent</returns> public async Task <IViewComponentResult> InvokeAsync() { List <StockQuote> stocks = new List <StockQuote>(); var json = await ApiHub.GetJson(_URL); var root = JArray.Parse(json); var children = root.Children(); var settings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore }; foreach (JToken t in children) { var symbol = JsonConvert.DeserializeObject <StockQuote>(t.ToString(), settings); stocks.Add(symbol); } return(View("Default", stocks)); }
public async Task <IActionResult> StockQuoteAsync(string symbol) { var userId = _userManager.GetUserId(User); PlayerProfile player = _ProfileRepository.FindByCondition(p => p.UserId == userId).First(); StockQuoteViewModel stockQuoteViewModel = new StockQuoteViewModel(); stockQuoteViewModel.Player = player; var settings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore }; _url = $"https://cloud.iexapis.com/stable/stock/{symbol}/quote?token={_iexcloudKey}"; var json = await ApiHub.GetJson(_url); StockQuote stockQuote = JsonConvert.DeserializeObject <StockQuote>(json, settings); stockQuoteViewModel.StockQuote = stockQuote; _url = $"https://cloud.iexapis.com/stable/stock/{symbol}/logo?token={_iexcloudKey}"; json = await ApiHub.GetJson(_url); JObject obj = JObject.Parse(json); string logoUrl = (string)obj["url"]; stockQuoteViewModel.LogoUrl = logoUrl; _url = $"https://cloud.iexapis.com/stable/stock/{symbol}/company?token={_iexcloudKey}"; json = await ApiHub.GetJson(_url); stockQuoteViewModel.Company = JsonConvert.DeserializeObject <Company>(json, settings); return(View("StockQuote", stockQuoteViewModel)); }
protected Task ReconnectAsyc() => ApiHub.StartAsync();
public async Task <IActionResult> PortfolioAsync() { var userId = _userManager.GetUserId(User); //Retrieves data from database StockPortfolioViewModel stockPortfolioViewModel = new StockPortfolioViewModel(); PlayerProfile player = _ProfileRepository.FindByCondition(p => p.UserId == userId).First(); stockPortfolioViewModel.PlayProfile = player; IEnumerable <PlayerStock> playerStocks = _stockRepository.FindByCondition(p => p.ProfileId == player.Id); if (playerStocks.Any()) { //Builds API Url from list of stocks the player owns StringBuilder sb = new StringBuilder(); sb.Append($@"https://cloud.iexapis.com/stable/stock/market/batch/?types=quote&token={_iexcloudKey}&symbols="); for (int i = 0; i < playerStocks.Count(); i++) { if (i == playerStocks.Count() - 1) { sb.Append(playerStocks.ElementAt(i).StockSymbol); } else { sb.Append(playerStocks.ElementAt(i).StockSymbol + ","); } } _url = sb.ToString(); //Gets real time stock quote for each stock player owns var json = await ApiHub.GetJson(_url); var root = JObject.Parse(json); List <StockQuote> stocksApi = new List <StockQuote>(); foreach (var r in root) { var stock = JsonConvert.DeserializeObject <StockQuote>(r.Value["quote"].ToString()); stocksApi.Add(stock); } List <PortfolioStock> stocks = new List <PortfolioStock>(); foreach (var pStocks in playerStocks) { StockQuote stock = stocksApi.Where(s => s.Symbol == pStocks.StockSymbol).FirstOrDefault(); var portfolioStock = new PortfolioStock(); portfolioStock.PlayerStockId = pStocks.Id; portfolioStock.Symbol = stock.Symbol; portfolioStock.Name = stock.CompanyName; portfolioStock.CurrentPrice = stock.LatestPrice; portfolioStock.Change = (decimal)stock.Change; portfolioStock.PercentChange = stock.ChangePercent; portfolioStock.Shares = pStocks.Shares; portfolioStock.PurchasePrice = pStocks.PurchasePrice; portfolioStock.PurchaseDate = pStocks.CreatedDate; stocks.Add(portfolioStock); } foreach (var stock in stocks) { stockPortfolioViewModel.TotalStockValue += stock.MarketValue; stockPortfolioViewModel.TotalStockCost += stock.TotalCost; stockPortfolioViewModel.TotalTodaysGain += stock.TodaysGain; } stockPortfolioViewModel.Stocks = stocks; } return(View("Portfolio", stockPortfolioViewModel)); }
public Startup(IConfiguration configuration) { Configuration = configuration; ApiHub.InitializeClient(); }