public bool Execute(IDigestProvider <string> provider, List <SkypeChat> chats, List <SkypeContact> contacts) { DigestResult <string> digest = provider.GenerateDigest(chats, contacts); if (!string.IsNullOrWhiteSpace(digest.Result)) { try { GMailSender.SendEmail(_emailToSend, digest.Result, _gmailAccount, _gmailPassword); return(true); } catch { } } return(false); }
public void InitializeDigest() { digestProvider = new HtmlDigestProvider(); digestProvider.Initialize(() => { DigestFilter filter = new DigestFilter(); filter.StartChatIds = Settings.LastChatIds; filter.StartContactIds = Settings.LastContactIds; return filter; }, result => { result.LastGeneratedChatIds.ToList().ForEach(pair => { Settings.LastChatIds[pair.Key] = pair.Value; }); result.LastGeneratedContactIds.ToList().ForEach(pair => { Settings.LastContactIds[pair.Key] = pair.Value; }); SaveSettings(); }); digestActionProvider = new GMailActionProvider(Settings.Email, Settings.GmailAccount, Settings.GmailPassword); //TODO: this is little trick how ot NOT send all data from first load (last message ids are saved after digest is created) digestProvider.GenerateDigest(Settings.SubscribedChats, Settings.SubscribedContacts); }