public async Task <IActionResult> Edit(int id, [Bind("Id,numberOne,numberTwo,numberThree,numberFour")] Top_Stocks top_Stocks) { if (id != top_Stocks.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(top_Stocks); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!Top_StocksExists(top_Stocks.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(top_Stocks)); }
public async Task <IActionResult> Index() { Scoring scoring = new Scoring(); Top_Stocks top_Stocks = new Top_Stocks(); List <Searches> unsortedStocks = new List <Searches>(); //Will need to change once I've implemented time frame, but works for now //May be better in the Startup class, but works here for now var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); if (userId == null) { for (int i = 0; i < top_Stocks.possibleTopStocks.Count(); i++) { Searches search = new Searches(); search.Symbol = top_Stocks.possibleTopStocks[i]; search.Score = scoring.GetGoogleScore(search); unsortedStocks.Add(search); } top_Stocks = SortStocks(unsortedStocks); //top_Stocks.UserId = userId; _context.Top_Stocks.Add(top_Stocks); await _context.SaveChangesAsync(); List <string[]> peopleToContact = new List <string[]>(); for (int i = 0; i < _context.User.Count(); i++) { string[] person = new string[2]; var UserList = _context.User.ToList(); var IdUserList = _context.Users.ToList(); for (int j = 0; j < UserList.Count(); j++) { person[0] = UserList[j].FirstName + " " + UserList[j].LastName; person[1] = IdUserList.Where(u => u.Id == UserList[j].UserId).FirstOrDefault().Email; peopleToContact.Add(person); //Not sure if this is disgusting or beautiful.. But it works } } foreach (string[] person in peopleToContact) { SendSimpleMessage(person, top_Stocks); //I think it's running twice on sign in right now. Fix that } return(Redirect("./Identity/Account/Login")); } if (User.IsInRole("User")) { return(RedirectToAction("Index", "Users")); } return(View()); }
public async Task <IActionResult> Create([Bind("Id,numberOne,numberTwo,numberThree,numberFour")] Top_Stocks top_Stocks) { if (ModelState.IsValid) { _context.Add(top_Stocks); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(top_Stocks)); }
public Top_Stocks SortStocks(List <Searches> stocks) { Top_Stocks top_Stocks = new Top_Stocks(); List <Searches> sortedSearches = stocks.OrderByDescending(s => s.Score).ToList(); top_Stocks.NumberOne = sortedSearches[0].Symbol.ToUpper(); top_Stocks.NumberTwo = sortedSearches[1].Symbol.ToUpper(); top_Stocks.NumberThree = sortedSearches[2].Symbol.ToUpper(); top_Stocks.NumberFour = sortedSearches[3].Symbol.ToUpper(); return(top_Stocks); }
public static IRestResponse SendSimpleMessage(string[] personToContact, Top_Stocks top_Stocks) { RestClient client = new RestClient(); client.BaseUrl = new System.Uri("https://api.mailgun.net/v3"); client.Authenticator = new HttpBasicAuthenticator("api", APIKeys.MailgunKey); RestRequest request = new RestRequest(); request.AddParameter("domain", "sandbox73857f42c79a49d9a93f8157620db6e9.mailgun.org", ParameterType.UrlSegment); request.Resource = "{domain}/messages"; request.AddParameter("from", "Mailgun Sandbox <*****@*****.**>"); request.AddParameter("to", personToContact[1]); request.AddParameter("subject", "Hello Jacob Brockmann"); request.AddParameter("text", "Hello " + personToContact[0] + ", Here are the top recommended stocks for today:" + top_Stocks.NumberOne + " " + top_Stocks.NumberTwo + " " + top_Stocks.NumberThree + " " + top_Stocks.NumberFour); request.Method = Method.POST; return(client.Execute(request)); }