public void RemoveDraft(string id) { if (string.IsNullOrEmpty(id)) { return; } //Get exist var existMail = DraftList.FirstOrDefault(item => { return(item.ID == id); }); if (existMail == null) { return; } //Delete Attachments string folder = DraftFolder.CombinePath(id); var dirInfo = new DirectoryInfo(folder); if (dirInfo.Exists) { dirInfo.Delete(true); } //Delete Mail Content DraftList.Remove(existMail); SerializeAssistant.Serialize(draftBinPath, DraftList); System.Diagnostics.Debug.WriteLine("Remove " + existMail.ID); }
private void SaveOutboxLocal() { string folder = DataFolder.CombinePath(UserAddress); EnsureCreateFolder(folder); string path = folder.CombinePath("Out.bin"); EnsureCreateFile(path); SerializeAssistant.Serialize(path, OutboxList); }
public void SaveDraftChanges(MailBase mail) { string mailId = mail.ID; if (string.IsNullOrEmpty(mailId)) { mail.ID = CreateId(); this.AddDraft(mail); } else { var existMail = DraftList.FirstOrDefault(item => { return(item.ID == mailId); }); if (existMail == null) { this.AddDraft(mail); } else { System.Diagnostics.Debug.WriteLine("Save changes of " + mail.ID); if (string.IsNullOrEmpty(mail.Subject) && string.IsNullOrEmpty(mail.BodyHtml) && string.IsNullOrEmpty(mail.BodyText)) { RemoveDraft(mail.ID); } else { existMail.SyncButNoIdTo(mail); SerializeAssistant.Serialize(draftBinPath, DraftList); } } } }
public void AddDraft(MailBase mail) { if (null == mail) { return; } if (DraftList.Contains(mail)) { return; } if (string.IsNullOrEmpty(mail.Subject) && string.IsNullOrEmpty(mail.BodyHtml) && string.IsNullOrEmpty(mail.BodyText)) { return; } if (string.IsNullOrEmpty(mail.ID)) { mail.ID = CreateId(); } System.Diagnostics.Debug.WriteLine("Add " + mail.ID); DraftList.Add(mail); SerializeAssistant.Serialize(draftBinPath, DraftList); }