public void UpdateSpecies(DBObject.Species species, DBObject.Species editedSpecies) { IDatabaseHost.Database.BeginTransaction(); try { IDatabaseHost.ISpeciesStore.Update(editedSpecies); List <Int64> editedImageIds = editedSpecies.Images.Select(n => n.id).ToList(); foreach (DBObject.Image image in species.Images) { if (!editedImageIds.Contains(image.id)) { IDatabaseHost.IImageStore.Delete(image); } } WriteImages(editedSpecies); IDatabaseHost.Database.CompleteTransaction(); } catch { IDatabaseHost.Database.AbortTransaction(); } Load(); }
//private void LoadImages(DBStore.IDatabaseHost iDatabaseHost, DBObject.Species species) //{ // Dictionary<long, string> paths = DBStore.DatabaseHelpers.LoadImagePaths(iDatabaseHost.IImagePathsStore); // species.Images = iDatabaseHost.IImageStore.LoadImages(species.id, paths); //} private void _buttonEdit_Click(object sender, RoutedEventArgs e) { if (_datagrid.SelectedIndex < 0) { return; } int selectedIndex = _datagrid.SelectedIndex; ViewModel.SpeciesListViewModel speciesListViewModel = DataContext as ViewModel.SpeciesListViewModel; DBObject.Species species = speciesListViewModel.SpeciesCollection[_datagrid.SelectedIndex] as DBObject.Species; // Edit a clone of the species DBObject.Species editedSpecies = species.Clone(); speciesListViewModel.LoadImages(species); speciesListViewModel.LoadImages(editedSpecies); View.SpeciesView speciesView = new SpeciesView(); ViewModel.SpeciesViewModel speciesViewModel = new ViewModel.SpeciesViewModel(speciesListViewModel.IDatabaseHost.IConfigurationStore, editedSpecies); speciesView.DataContext = speciesViewModel; speciesView.WindowStartupLocation = WindowStartupLocation.CenterOwner; speciesView.Owner = this; if (speciesView.ShowDialog() == false) { return; } speciesListViewModel.UpdateSpecies(species, editedSpecies); _datagrid.Columns[0].Visibility = Visibility.Collapsed; }
public bool Update(DBObject.Species species) { bool success = true; try { _iSpeciesTable.Update(species); } catch { success = false; } return(success); }
public bool Insert(DBObject.Species species) { bool success = true; try { _iSpeciesTable.Insert(species); } catch { success = false; } return(success); }
public bool Delete(DBObject.Species species) { bool success = true; try { _iDatabase.BeginTransaction(); _iSpeciesAttributeChoiceTable.DeleteBySpecies(species.id); _iSpeciesTable.Delete(species); _iDatabase.CommitTransaction(); } catch { success = false; _iDatabase.RollbackTransaction(); } return(success); }
private void _buttonNew_Click(object sender, RoutedEventArgs e) { ViewModel.SpeciesListViewModel speciesListViewModel = DataContext as ViewModel.SpeciesListViewModel; DBObject.Species species = new DBObject.Species(); View.SpeciesView speciesView = new SpeciesView(); ViewModel.SpeciesViewModel speciesViewModel = new ViewModel.SpeciesViewModel(speciesListViewModel.IDatabaseHost.IConfigurationStore, species); speciesView.DataContext = speciesViewModel; speciesView.WindowStartupLocation = WindowStartupLocation.CenterOwner; speciesView.Owner = this; if (speciesView.ShowDialog() == false) { return; } // Save everything speciesListViewModel.InsertSpecies(species); _datagrid.Columns[0].Visibility = Visibility.Collapsed; }
private void WriteImages(DBObject.Species species) { byte displayOrder = 0; ParseImagePath(IDatabaseHost.IImagePathsStore, species.Images); foreach (DBObject.Image image in species.Images) { image.display_order = displayOrder; ++displayOrder; image.fungus_id = species.id; if (image.id == 0) { IDatabaseHost.IImageStore.Insert(image); } else { IDatabaseHost.IImageStore.Update(image); } } }
public void DeleteSpecies(int index) { DBObject.Species species = SelectedSpecies; LoadImages(species); IDatabaseHost.Database.BeginTransaction(); try { foreach (var image in species.Images) { IDatabaseHost.IImageStore.Delete(image); } IDatabaseHost.ISpeciesStore.Delete(species); IDatabaseHost.Database.CompleteTransaction(); } catch { IDatabaseHost.Database.AbortTransaction(); } Load(); }
public void InsertSpecies(DBObject.Species species) { IDatabaseHost.Database.BeginTransaction(); try { IDatabaseHost.ISpeciesStore.Insert(species); WriteImages(species); IDatabaseHost.Database.CompleteTransaction(); } catch (Exception exception) { IDatabaseHost.Database.AbortTransaction(); } Load(); var enumerator = SpeciesCollection.Where(n => n.id == species.id); if ((enumerator != null) && (enumerator.Count() > 0)) { SelectedSpecies = enumerator.First(); } }
public void Delete(DBObject.Species species) { _database.Delete("tblFungi", "id", species); }
public void Insert(DBObject.Species species) { species.id = System.Convert.ToInt64(_database.Insert("tblFungi", "id", species)); }
internal void LoadImages(DBObject.Species species) { Dictionary <long, string> paths = IDatabaseHost.IImagePathsStore.LoadImagePaths(); species.Images = IDatabaseHost.IImageStore.LoadImages(species.id, paths); }
public SpeciesViewModel(DBStore.IConfigurationStore iConfigurationStore, DBObject.Species species) { _iConfigurationStore = iConfigurationStore; Species = species; Images = new ObservableCollection <DBObject.Image>(species.Images); }