public override Indexable GetNextIndexable() { TB.Mail mail = DbEnumerator.Current as TB.Mail; // If status is different, than something happend when loading this mail and we dont' // want to change it's status. if (mail.GetObject("FullIndex") == null) { mail.SetObject("FullIndex", (object)FullIndex); } return(MailToIndexable(mail)); }
private Indexable MailToIndexable(TB.Mail mail) { Indexable indexable; GMime.Message message = mail.Message; FullIndex = mail.GetBool("FullIndex"); // Make sure this is up to date string mailbox = (MailboxName != null ? MailboxName : (string)mail.GetString("mailbox")); indexable = NewIndexable(mail.Uri, message.Date.ToUniversalTime(), "MailMessage"); indexable.MimeType = "message/rfc822"; indexable.CacheContent = true; indexable.AddProperty(Property.NewKeyword("fixme:folder", mailbox)); indexable.SetBinaryStream(message.Stream); if (mail.GetBool("FullIndex")) { indexable.ContentUri = UriFu.PathToFileUri(Thunderbird.GetFullyIndexableFile(DbFile)); } message.Dispose(); return(indexable); }