public void sendEmail(string Recipient, string SymbolName, string CurrentPrice, tradeTypes TradeType, int Quantity) { using (var client = new SmtpClient("smtp.gmail.com", 587)) { client.Credentials = new NetworkCredential("*****@*****.**", "algSweng500"); var mail = new MailMessage(); mail.To.Add(Recipient); mail.From = new MailAddress("*****@*****.**"); if (TradeType == tradeTypes.Sell) { mail.Subject = SymbolName + " request to sell " + Quantity.ToString() + " shares"; mail.Body = "AlgoTrader software is sending this email because the stock " + SymbolName + " has dropped below the required parameters. <br/>" + "We recommend selling " + Quantity.ToString() + " shares.<br/><br/>" + "Do you wish to sell? <br/>" + "Please respond with either YES or NO"; } else { mail.Subject = SymbolName + " request to buy " + Quantity.ToString() + " shares"; mail.Body = "AlgoTrader software is sending this email because the stock " + SymbolName + " has risen above the required parameters. <br/>" + "We recommend buying " + Quantity.ToString() + " shares<br/><br/>" + "Do you wish to sell? <br/>" + "Please respond with either YES or NO"; } mail.IsBodyHtml = true; client.EnableSsl = true; client.Send(mail); } }
public void generateAlert(string symbolName, tradeTypes type, int quantity, double price) { ILog log = Logger; log.DebugFormat("Alert generated: {0} {1} {2} {3}", symbolName, type.ToString(), quantity.ToString(), price.ToString()); TraderContext db = DbContext; Symbol s = db.Symbols.Where(x => x.name == symbolName).FirstOrDefault(); Alert a = new Alert(); a.AlertId = Guid.NewGuid(); a.Timestamp = DateTime.Now; a.Symbol = s; a.Type = type; a.Quantity = quantity; a.Price = price; a.ResponseCode = responseCodes.Pending; db.Alerts.Add(a); db.SaveChanges(); IEmail email = new EmailSender(); string to_address = db.SystemSettings.Where(x => x.Module == "UserAgent" && x.Name == "ALERTS_EMAIL_ADDRESS_TO").FirstOrDefault().Value; if (to_address == null) { throw new Exception("Unable to load user email address for alerts."); } email.sendEmail(to_address, symbolName, price.ToString(), type, a.Quantity); db.Dispose(); }
public TradeMessage(ITrade trade) : this() { TradeId = trade.TradeId; SymbolName = trade.symbol.name; Price = trade.price; Quantity = trade.quantity; InitialQuantity = trade.InitialQuantity; Timestamp = trade.timestamp; Type = trade.type; Status = trade.Status; PaidCommission = trade.PaidCommission; TransactionId = trade.TransactionId; RelatedTradeId = trade.RelatedTradeId; }
public void generateAlert(string symbolName, tradeTypes type, int quantity, double price) { ILog log = Logger; log.DebugFormat("Alert generated: {0} {1} {2} {3}", symbolName, type.ToString(), quantity.ToString(), price.ToString()); TraderContext db = DbContext; Symbol s = db.Symbols.Where(x => x.name == symbolName).FirstOrDefault(); Alert a = new Alert(); a.AlertId = Guid.NewGuid(); a.Timestamp = DateTime.Now; a.Symbol = s; a.Type = type; a.Quantity = quantity; a.Price = price; a.ResponseCode = responseCodes.Pending; db.Alerts.Add(a); db.SaveChanges(); IEmail email = new EmailSender(); string to_address = db.SystemSettings.Where(x => x.Module == "UserAgent" && x.Name == "ALERTS_EMAIL_ADDRESS_TO").FirstOrDefault().Value; if (to_address == null) throw new Exception("Unable to load user email address for alerts."); email.sendEmail(to_address, symbolName, price.ToString(), type, a.Quantity); db.Dispose(); }