Exemple #1
0
        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));
        }
Exemple #2
0
        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());
        }
Exemple #3
0
        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));
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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));
        }