예제 #1
0
        private void RestoreFavorites(FavoritesFolder favoritesFolder,
                                      IEnumerable <Folder> folders, IEnumerable <Link> links)
        {
            foreach (var link in links)
            {
                if (link.MessageId != 0)
                {
                    _favManager.AddMessageLink(
                        link.MessageId, link.Comment, favoritesFolder);
                }
                else
                {
                    _favManager.AddUrlLink(
                        link.Url, link.Comment, favoritesFolder);
                }
            }

            foreach (var folder in folders)
            {
                _favManager.AddFolder(folder.Name, folder.Comment, favoritesFolder);

                var parentFolder =
// ReSharper disable AccessToModifiedClosure
                    favoritesFolder.SubFolders.FirstOrDefault(f => f.Name == folder.Name);
// ReSharper restore AccessToModifiedClosure

                if (parentFolder != null)
                {
                    RestoreFavorites(parentFolder, folder.Folders, folder.Links);
                }
            }
        }
예제 #2
0
        public void ExecuteAddLink(ICommandContext context)
        {
            var favFormSvc = context.GetRequiredService <IFavoritesDummyFormService>();

            using (var fi = new FavoritesLinkForm())
                if (fi.ShowDialog(
                        context
                        .GetRequiredService <IUIShell>()
                        .GetMainWindowParent()) == DialogResult.OK)
                {
                    _favManager.AddUrlLink(
                        fi.Url,
                        fi.Comment,
                        favFormSvc.SelectedEntries.Any()
                                                        ? (FavoritesFolder)favFormSvc.SelectedEntries.Single()
                                                        : _favManager.RootFolder);
                    favFormSvc.Refresh();
                }
        }