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);
        }
示例#2
0
        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);
        }