private static void Process(ITheaterPlay play) { var dbName = $@"{DbFolder}\{play.Id}"; var occurrences = play.Occurrences; if (File.Exists(dbName)) { var oldOccurrencesString = File.ReadAllText(dbName); var oldOccurrences = DeserializeOccurrences(oldOccurrencesString); var addedOccurrences = occurrences.Except(oldOccurrences).ToArray(); if (addedOccurrences.Any()) { Trace.WriteLine($"play {play.Id} has {addedOccurrences.Length} new occurrences"); var emailBody = BuildEmailBody(play, addedOccurrences); SmtpHelpers.Send(play.Id, emailBody); } else { Trace.WriteLine($"play {play.Id} has no added occurrences"); } } var occurrencesString = SerializeOccurrences(occurrences); if (!Directory.Exists(DbFolder)) Directory.CreateDirectory(DbFolder); File.WriteAllText(dbName, occurrencesString); }
private static string BuildEmailBody(ITheaterPlay play, ICollection<DateTime> addedOccurrences) { var s = SerializeOccurrences(addedOccurrences) .Replace("\r\n", "<br>"); return $@"<span style='font-family:Tahoma;font-size:13px;'><h1><a href='{play.Link}'>{play.Title}</a></1> <br> <h2>{play.Location}</h2> <div style='color:lightGreen;'>Added Occurrences:</div> <br> {s}</span>"; }