private async Task handleAddingRecentFile(Models.RecentFileModel file)
 {
     if (await addRecentFile(file) > 0)
     {
         // it was a new recent file so add it to model
         AddRecentFileToModel(file);
     }
 }
        public void OpenRecentFile(Models.RecentFileModel file)
        {
            SnippetDocumentControl snippet = File.OpenHandler.Open(file.Path);

            if (snippet != null)
            {
                AddSnippetTab(snippet);
            }
        }
        public void RenameRecentFile(Models.RecentFileModel file)
        {
            var form = new nac.wpf.forms.Form()
                       .TextBoxFor("FileName", file.FileName)
                       .Display();

            if (!string.Equals(form.Model["FileName"] as string, file.FileName))
            {
                Utilities.DBManager.RenameRecentFile(file, form.Model["FileName"] as string);
                file.FileName = form.Model["FileName"] as string;
            }
        }
        private Task <int> addRecentFile(Models.RecentFileModel file)
        {
            var p = new TaskCompletionSource <int>();

            var t = new Thread(() =>
            {
                if (Utilities.DBManager.AddRecentFileIfNotDuplicate(file))
                {
                    p.SetResult(1);
                }
                else
                {
                    p.SetResult(-1);
                }
            });

            t.Start();

            return(p.Task);
        }
        private void AddRecentFileToModel(Models.RecentFileModel file)
        {
            file.OnOpen += (_sender, _args) =>
            {
                this.OpenRecentFile(_sender as Models.RecentFileModel);
            };

            file.OnRename += (_sender, _args) =>
            {
                this.RenameRecentFile(_sender as Models.RecentFileModel);
            };

            file.OnRemove += (_sender, _args) =>
            {
                this.RemoveFromRecentFiles(_sender as Models.RecentFileModel);
            };

            file.OnClearAll += (_sender, _args) =>
            {
                this.ClearAllRecentFiles();
            };

            this.Model.RecentFiles.Add(file);
        }
 public void RemoveFromRecentFiles(Models.RecentFileModel file)
 {
     Utilities.DBManager.RemoveRecentFile(file);
     this.Model.RecentFiles.Remove(file);
 }