public void Reload() { RootFolder = CreateFavoritesFolders(GetFavorites()); OnReload(); SetFavoriteLinksSetDirty(); }
public void Delete(FavoritesFolder folder) { var parentFolder = (FavoritesFolder)folder.Parent; var ids = new List <int>(GetSubFoldersIds(folder)) { folder.Id }; using (var db = _provider.CreateDBContext()) using (var tx = db.BeginTransaction()) { var splits = ids.SplitForInClause(_provider); foreach (var series in splits) { // ReSharper disable AccessToModifiedClosure db.FavoriteItems(fi => series.Contains(fi.FolderID)).Delete(); } // ReSharper restore AccessToModifiedClosure foreach (var series in splits) { // ReSharper disable AccessToModifiedClosure db.FavoriteFolders(ff => series.Contains(ff.ID)).Delete(); } // ReSharper restore AccessToModifiedClosure tx.Commit(); } parentFolder.SubFolders.Remove(folder); SetFavoriteLinksSetDirty(); }
public void AddFolder(string name, string comment, FavoritesFolder parentFolder) { if (parentFolder.SubFolders.Any(f => f.Name == name)) { return; } var newFolder = FavoritesFolder.CreateInstance(_provider, -1, name, comment, parentFolder); using (var db = _provider.CreateDBContext()) using (var tx = db.BeginTransaction()) { db .IntoFavoriteFolders() .Value(_ => _.Name, name) .Value(_ => _.ParentID, parentFolder.Id) .Value(_ => _.Comment, comment) .Insert(); newFolder.Id = db.FavoriteFolders().Max(ff => ff.ID); tx.Commit(); } parentFolder.SubFolders.Add(newFolder); SetFavoriteLinksSetDirty(); }
public void Reload() { RootFolder = CreateFavoritesFolders(GetFavorites()); OnReload(); SetFavoriteLinksSetDirty(); }
public bool Move( FavoritesLink msg, FavoritesFolder newParent) { if (FindByMessageId(newParent.Links, msg.MessageId) != null) { return(false); } var oldParent = (FavoritesFolder)msg.Parent; // здесь, т.к. в Links.Add() Parent будет переустановлен newParent.Links.Add(msg); using (var db = _provider.CreateDBContext()) db .FavoriteItems(fi => fi.ID == ((IFavoritesEntry)msg).Id) .Set(_ => _.FolderID, newParent.Id) .Update(); oldParent.Links.Remove(msg); newParent.SortLinks(Config.Instance.FavoritesMessagesSortCriteria); return(true); }
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); } } }
public void AddUrlLink(string url, string comment, FavoritesFolder folder) { var link = FavoritesLink.CreateInstance(_provider, -1, url, comment, folder); folder.Links.Add(link); InsertFavoritesLink(link); SetFavoriteLinksSetDirty(); }
public void Update(FavoritesFolder folder) { using (var db = _provider.CreateDBContext()) db .FavoriteFolders(ff => ff.ID == folder.Id) .Set(_ => _.Name, folder.Name) .Set(_ => _.ParentID, folder.Parent.Id) .Set(_ => _.Comment, folder.Comment) .Update(); }
private Dictionary <int, FavoritesFolder> GetFavorites() { using (var db = _provider.CreateDBContext()) { var folders = db .FavoriteFolders() .Select( ff => new FavoritesFolder(_provider) { Id = ff.ID, Name = ff.Name, ParentId = ff.ParentID, Comment = ff.Comment }) .ToDictionary(ff => ff.Id); var links = db .FavoriteItems() .Select( i => new FavoritesLink(_provider) { Id = i.ID, FolderId = i.FolderID, Comment = i.Comment, Url = i.Url, MessageId = i.MessageID, }) .ToList(); var rootFolder = FavoritesFolder.CreateInstance( _provider, 0, string.Empty, string.Empty, null); folders.Add(0, rootFolder); foreach (var link in links) { var folder = folders[link.FolderId]; folder.Links.Add(link); link.Parent = folder; } return(folders); } }
public bool Move(FavoritesFolder folder, FavoritesFolder newParent) { var parentFolder = (FavoritesFolder)folder.Parent; parentFolder.SubFolders.Remove(folder); newParent.SubFolders.Add(folder); folder.Update(); newParent.SortFolders(Config.Instance.FavoritesFoldersSortDirection); return(true); }
public static FavoritesLink CreateInstance( IServiceProvider provider, int id, string url, string comment, FavoritesFolder parent) { var link = CreateInstance(provider); link.Id = id; link.Url = url; link.Comment = comment; link.Parent = parent; return link; }
public static FavoritesLink CreateInstance( IServiceProvider provider, int id, int messageID, string comment, FavoritesFolder parent) { var link = CreateInstance(provider); link.Id = id; link.MessageId = messageID; link.Comment = comment; link.Parent = parent; return link; }
public static FavoritesLink CreateInstance( IServiceProvider provider, int id, string url, string comment, FavoritesFolder parent) { var link = CreateInstance(provider); link.Id = id; link.Url = url; link.Comment = comment; link.Parent = parent; return(link); }
public bool AddMessageLink(int messageId, string comment, FavoritesFolder folder) { if (FindByMessageId(folder.Links, messageId) != null) { return(false); } var link = FavoritesLink.CreateInstance(_provider, -1, messageId, comment, folder); folder.Links.Add(link); InsertFavoritesLink(link); SetFavoriteLinksSetDirty(); return(true); }
private static IEnumerable <int> GetSubFoldersIds(FavoritesFolder folder) { if (folder == null) { throw new ArgumentNullException("folder"); } foreach (var subFolder in folder.SubFolders) { yield return(subFolder.Id); foreach (var fid in GetSubFoldersIds(subFolder)) { yield return(fid); } } }
private static Folder GetFavorites(FavoritesFolder favoritesFolder) { var folder = new Folder( favoritesFolder.Name, favoritesFolder.Comment); foreach (var subFolder in favoritesFolder.SubFolders) { folder.Folders.Add(GetFavorites(subFolder)); } foreach (var link in favoritesFolder.Links) { folder.Links.Add( new Link(link.MessageId, link.Link, link.Comment)); } return(folder); }
public static FavoritesFolder CreateInstance( IServiceProvider provider, int id, string name, string comment, FavoritesFolder parent) { var folder = new FavoritesFolder(provider) { Id = id, Name = name, Comment = comment, Parent = parent }; return(folder); }
private static IEnumerable <FavoritesLink> GetFavoritesLinks(FavoritesFolder folder) { if (folder == null) { throw new ArgumentNullException("folder"); } foreach (var link in folder.Links) { yield return(link); } foreach (var subFolder in folder.SubFolders) { foreach (var link in GetFavoritesLinks(subFolder)) { yield return(link); } } }
public FavoritesSelectFolderForm( IServiceProvider provider, FavoritesFolder folders, bool newItem) { _favManager = provider.GetRequiredService<IFavoritesManager>(); InitializeComponent(); if (!newItem) { _comment.Visible = false; _commentLabel.Visible = false; } _folderView.SmallImageList = FavoritesDummyForm.Instance.TreeImages; if (folders.ShowLinks) folders.ShowLinks = false; _folderView.Nodes = folders; }
public FavoritesSelectFolderForm( IServiceProvider provider, FavoritesFolder folders, bool newItem) { _favManager = provider.GetRequiredService <IFavoritesManager>(); InitializeComponent(); if (!newItem) { _comment.Visible = false; _commentLabel.Visible = false; } _folderView.SmallImageList = FavoritesDummyForm.Instance.TreeImages; if (folders.ShowLinks) { folders.ShowLinks = false; } _folderView.Nodes = folders; }
public void AddFolder(string name, string comment, FavoritesFolder parentFolder) { if (parentFolder.SubFolders.Any(f => f.Name == name)) return; var newFolder = FavoritesFolder.CreateInstance(_provider, -1, name, comment, parentFolder); using (var db = _provider.CreateDBContext()) using (var tx = db.BeginTransaction()) { db .IntoFavoriteFolders() .Value(_ => _.Name, name) .Value(_ => _.ParentID, parentFolder.Id) .Value(_ => _.Comment, comment) .Insert(); newFolder.Id = db.FavoriteFolders().Max(ff => ff.ID); tx.Commit(); } parentFolder.SubFolders.Add(newFolder); SetFavoriteLinksSetDirty(); }
private static IEnumerable<FavoritesLink> GetFavoritesLinks(FavoritesFolder folder) { if (folder == null) throw new ArgumentNullException(nameof(folder)); foreach (var link in folder.Links) yield return link; foreach (var subFolder in folder.SubFolders) foreach (var link in GetFavoritesLinks(subFolder)) yield return link; }
private static Folder GetFavorites(FavoritesFolder favoritesFolder) { var folder = new Folder( favoritesFolder.Name, favoritesFolder.Comment); foreach (var subFolder in favoritesFolder.SubFolders) folder.Folders.Add(GetFavorites(subFolder)); foreach (var link in favoritesFolder.Links) folder.Links.Add( new Link(link.MessageId, link.Link, link.Comment)); return folder; }
public void Delete(FavoritesFolder folder) { var parentFolder = (FavoritesFolder)folder.Parent; var ids = new List<int>(GetSubFoldersIds(folder)) {folder.Id}; using (var db = _provider.CreateDBContext()) using (var tx = db.BeginTransaction()) { var splits = ids.SplitForInClause(_provider); foreach (var series in splits) // ReSharper disable AccessToModifiedClosure db.FavoriteItems(fi => series.Contains(fi.FolderID)).Delete(); // ReSharper restore AccessToModifiedClosure foreach (var series in splits) // ReSharper disable AccessToModifiedClosure db.FavoriteFolders(ff => series.Contains(ff.ID)).Delete(); // ReSharper restore AccessToModifiedClosure tx.Commit(); } parentFolder.SubFolders.Remove(folder); SetFavoriteLinksSetDirty(); }
public void Update(FavoritesFolder folder) { using (var db = _provider.CreateDBContext()) db .FavoriteFolders(ff => ff.ID == folder.Id) .Set(_ => _.Name, folder.Name) .Set(_ => _.ParentID, folder.Parent.Id) .Set(_ => _.Comment, folder.Comment) .Update(); }
public void AddUrlLink(string url, string comment, FavoritesFolder folder) { var link = FavoritesLink.CreateInstance(_provider, -1, url, comment, folder); folder.Links.Add(link); InsertFavoritesLink(link); SetFavoriteLinksSetDirty(); }
private static IEnumerable<int> GetFavoriteLinks(FavoritesFolder folder) { if (folder == null) throw new ArgumentNullException("folder"); foreach (var link in folder.Links) yield return link.MessageId; foreach (var subFolder in folder.SubFolders) foreach (var mid in GetFavoriteLinks(subFolder)) yield return mid; }
public static FavoritesFolder CreateInstance( IServiceProvider provider, int id, string name, string comment, FavoritesFolder parent) { var folder = new FavoritesFolder(provider) { Id = id, Name = name, Comment = comment, Parent = parent }; return folder; }
private static IEnumerable<int> GetSubFoldersIds(FavoritesFolder folder) { if (folder == null) throw new ArgumentNullException(nameof(folder)); foreach (var subFolder in folder.SubFolders) { yield return subFolder.Id; foreach (var fid in GetSubFoldersIds(subFolder)) yield return fid; } }
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); } }
public bool Move( FavoritesLink msg, FavoritesFolder newParent) { if (FindByMessageId(newParent.Links, msg.MessageId) != null) return false; var oldParent = (FavoritesFolder)msg.Parent; // здесь, т.к. в Links.Add() Parent будет переустановлен newParent.Links.Add(msg); using (var db = _provider.CreateDBContext()) db .FavoriteItems(fi => fi.ID == ((IFavoritesEntry)msg).Id) .Set(_ => _.FolderID, newParent.Id) .Update(); oldParent.Links.Remove(msg); newParent.SortLinks(Config.Instance.FavoritesMessagesSortCriteria); return true; }
public bool AddMessageLink(int messageId, string comment, FavoritesFolder folder) { if (FindByMessageId(folder.Links, messageId) != null) return false; var link = FavoritesLink.CreateInstance(_provider, -1, messageId, comment, folder); folder.Links.Add(link); InsertFavoritesLink(link); SetFavoriteLinksSetDirty(); return true; }
public bool Move(FavoritesFolder folder, FavoritesFolder newParent) { var parentFolder = (FavoritesFolder)folder.Parent; parentFolder.SubFolders.Remove(folder); newParent.SubFolders.Add(folder); folder.Update(); newParent.SortFolders(Config.Instance.FavoritesFoldersSortDirection); return true; }