public override void Execute() { List <Stock> toProcess = _summaryRepository.Stocks.ToList(); toProcess.ForEach(s => SummarizeData(s)); var today = DateTime.Today; var emailArchive = _summaryRepository.GetEmailArchiveForDate(typeof(DailyV001).Name, today); //already sent for today. if (emailArchive != null) { return; } List <Stock> toReport = _summaryRepository.Stocks .Where(s => s.InIDB50).ToList(); List <DailyV001> reportList = toReport .Select(s => _summaryRepository.GetDailySummaryListForDate(s.Symbol, today)) .Where(d => d != null) .ToList(); if (toReport.Count() - reportList.Count() < 10) { var html = CompositeDailySummaryHtml(reportList); using (var sender = new EmailServiceSender(ServiceSettings.Instance.EmailSettingFile)) { sender.SendEmail("*****@*****.**", ServiceSettings.Instance.EmalCc, "StockWatch Daily Summary", html); } _summaryRepository.SaveEmailArchive( new EmailArchive { Name = typeof(DailyV001).Name, DateSent = today, Html = html }); } }