Exemple #1
0
        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
                });
            }
        }