private void TryDelete(List <IFavorite> favorites) { using (Database database = DatabaseConnections.CreateInstance()) { List <DbFavorite> favoritesToDelete = favorites.Cast <DbFavorite>().ToList(); List <DbCredentialBase> redundantCredentialBase = SelectRedundantCredentialBase(favoritesToDelete); this.DeleteFavoritesFromDatabase(database, favoritesToDelete); database.SaveImmediatelyIfRequested(); database.RemoveRedundantCredentialBase(redundantCredentialBase); database.SaveImmediatelyIfRequested(); this.groups.RefreshCache(); this.FinishRemove(favorites, favoritesToDelete); } }
private void TryUpdateFavorite(IFavorite favorite, List <IGroup> newGroups) { using (Database database = DatabaseConnections.CreateInstance()) { var toUpdate = favorite as DbFavorite; database.Cache.AttachFavorite(toUpdate); List <IGroup> addedGroups = database.AddToDatabase(newGroups); // commit newly created groups, otherwise we cant add into them database.SaveImmediatelyIfRequested(); UpdateGroupsMembership(favorite, newGroups); database.SaveImmediatelyIfRequested(); this.dispatcher.ReportGroupsAdded(addedGroups); this.TrySaveAndReportFavoriteUpdate(toUpdate, database); } }
private void SaveAndReportFavoriteUpdated(Database database, DbFavorite favorite) { database.Cache.MarkFavoriteAsModified(favorite); database.SaveImmediatelyIfRequested(); this.favoriteIcons.UpdateImageInDatabase(favorite, database); database.Cache.DetachFavorite(favorite); this.cache.Update(favorite); this.dispatcher.ReportFavoriteUpdated(favorite); }
private static void AddToDatabase(DbCredentialSet credentialToAdd) { using (Database database = DatabaseConnections.CreateInstance()) { database.CredentialBase.Add(credentialToAdd); database.SaveImmediatelyIfRequested(); database.Cache.Detach(credentialToAdd); } }
private static void DeleteFromDatabase(DbCredentialSet credentailToRemove) { using (Database database = DatabaseConnections.CreateInstance()) { database.CredentialBase.Attach(credentailToRemove); database.CredentialBase.Remove(credentailToRemove); database.SaveImmediatelyIfRequested(); } }
private void SaveAndReportUpdated(Database database, DbGroup toUpdate) { database.Cache.MarkAsModified(toUpdate); database.SaveImmediatelyIfRequested(); database.Cache.Detach(toUpdate); this.cache.Update(toUpdate); this.dispatcher.ReportGroupsUpdated(new List <IGroup> { toUpdate }); }
private void TryRebuild() { using (Database database = DatabaseConnections.CreateInstance()) { List <DbGroup> emptyGroups = this.DeleteEmptyGroupsFromDatabase(database); database.SaveImmediatelyIfRequested(); List <IGroup> toReport = this.DeleteFromCache(emptyGroups); this.dispatcher.ReportGroupsDeleted(toReport); } }
private void TryUpdate(ICredentialSet toUpdate) { using (Database database = DatabaseConnections.CreateInstance()) { var credentialToUpdate = toUpdate as DbCredentialSet; database.CredentialBase.Attach(credentialToUpdate); database.Cache.MarkAsModified(credentialToUpdate); database.SaveImmediatelyIfRequested(); database.Cache.Detach(credentialToUpdate); this.cache.Update(credentialToUpdate); } }
private void TryAdd(List <IFavorite> favorites) { using (Database database = DatabaseConnections.CreateInstance()) { List <DbFavorite> toAdd = favorites.Cast <DbFavorite>().ToList(); database.AddAll(toAdd); this.UpdateIconInDatabase(database, toAdd); database.SaveImmediatelyIfRequested(); database.Cache.DetachAll(toAdd); this.cache.Add(toAdd); this.dispatcher.ReportFavoritesAdded(favorites); } }
internal void SaveAndReportFavoritesUpdated(Database database, List <DbFavorite> dbFavorites, List <IFavorite> selectedFavorites) { try { database.SaveImmediatelyIfRequested(); this.cache.Update(dbFavorites); this.dispatcher.ReportFavoritesUpdated(selectedFavorites); } catch (DbUpdateException) { this.favorites.RefreshCache(); } }
private void TryAdd(IGroup group) { using (Database database = DatabaseConnections.CreateInstance()) { DbGroup toAdd = group as DbGroup; database.AddToGroups(toAdd); database.SaveImmediatelyIfRequested(); database.Cache.DetachGoup(toAdd); this.cache.Add(toAdd); this.dispatcher.ReportGroupsAdded(new List <IGroup> { toAdd }); } }
private void TryDelete(IGroup group) { using (Database database = DatabaseConnections.CreateInstance()) { var toDelete = group as DbGroup; List <IFavorite> changedFavorites = group.Favorites; this.SetChildsToRoot(database, toDelete); database.Groups.Attach(toDelete); database.Groups.Remove(toDelete); database.SaveImmediatelyIfRequested(); this.FinishGroupRemove(group); this.dispatcher.ReportFavoritesUpdated(changedFavorites); } }
internal void SaveAndReportFavoritesUpdated(Database database, List<DbFavorite> dbFavorites, List<IFavorite> selectedFavorites) { try { database.SaveImmediatelyIfRequested(); this.cache.Update(dbFavorites); this.dispatcher.ReportFavoritesUpdated(selectedFavorites); } catch (DbUpdateException) { this.favorites.RefreshCache(); } }
private void SaveAndReportUpdated(Database database, DbGroup toUpdate) { database.Cache.MarkAsModified(toUpdate); database.SaveImmediatelyIfRequested(); database.Cache.Detach(toUpdate); this.cache.Update(toUpdate); this.dispatcher.ReportGroupsUpdated(new List<IGroup>() { toUpdate }); }