コード例 #1
0
ファイル: MainViewModel.cs プロジェクト: wpc2333/MailApp
        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);
        }
コード例 #2
0
ファイル: MainViewModel.cs プロジェクト: wpc2333/MailApp
        private void SaveOutboxLocal()
        {
            string folder = DataFolder.CombinePath(UserAddress);

            EnsureCreateFolder(folder);
            string path = folder.CombinePath("Out.bin");

            EnsureCreateFile(path);
            SerializeAssistant.Serialize(path, OutboxList);
        }
コード例 #3
0
ファイル: MainViewModel.cs プロジェクト: wpc2333/MailApp
        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);
                    }
                }
            }
        }
コード例 #4
0
ファイル: MainViewModel.cs プロジェクト: wpc2333/MailApp
 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);
 }