private void OnGridData_SelectionChanged(object sender, SelectionChangedEventArgs e) { buttonEdit.IsEnabled = gridData.SelectedCells.Count > 0; buttonDelete.IsEnabled = gridData.SelectedCells.Count > 0; switch (_entityType) { case "Fisher": buttonSubGrid.IsEnabled = gridData.SelectedCells.Count > 0; buttonSubGrid1.IsEnabled = buttonSubGrid.IsEnabled; break; case "LandingSite": case "Gear": buttonSubGrid1.IsEnabled = gridData.SelectedCells.Count > 0; break; } if (gridData.SelectedItem != null) { switch (_entityType) { case "Sampling": Sampling = (Sampling)gridData.SelectedItem; _entityID = Sampling.RowID; break; case "Gear": Gear = (Gear)gridData.SelectedItem; _entityID = Gear.GearID; break; case "ProjectSetting": ProjectSetting = (ProjectSetting)gridData.SelectedItem; _entityID = ProjectSetting.ProjectID; break; case "Fisher": FisherAndGPS fg = (FisherAndGPS)gridData.SelectedItem; Fisher = fg.Fisher; _entityID = fg.Fisher.FisherID; break; case "LandingSite": LandingSite = (LandingSite)gridData.SelectedItem; _entityID = LandingSite.LandingSiteID; break; case "GPS": GPS = (GPS)gridData.SelectedItem; _entityID = GPS.ID; break; } } }
private void OnButton_Click(object sender, RoutedEventArgs e) { string buttonName = ((Button)sender).Name; switch (buttonName) { case "buttonSubGrid1": switch (_entityType) { case "LandingSite": case "Gear": case "Fisher": SamplingHistoryWindow shw = new SamplingHistoryWindow(_entityType); shw.Owner = this; shw.ShowDialog(); break; case "GPS": GPSStatusWindow gsw = new GPSStatusWindow("gps_history"); gsw.Owner = this; gsw.Show(); break; } break; case "buttonSubGrid": switch (_entityType) { case "Fisher": FisherAndGPS fg = (FisherAndGPS)gridData.SelectedItem; FisherGPSWindow fgw = new FisherGPSWindow(fisher: fg.Fisher, readOnly: false, parentWindow: this); //FisherGPSWindow fgw = new FisherGPSWindow((Fisher)gridData.SelectedItem); fgw.ShowDialog(); if (!fgw.Cancelled && RefreshDataGridNeeded) { refreshDataGrid(); } break; case "GPS": GPSStatusWindow gsw = new GPSStatusWindow("assignment"); gsw.Owner = this; gsw.Show(); break; } //buttonSubGrid.IsEnabled = false; break; case "buttonAdd": AddEditWindow aew = new AddEditWindow(_entityType, true); aew.ShowDialog(); if (!aew.Cancelled) { refreshDataGrid(); } break; case "buttonEdit": aew = new AddEditWindow(_entityType, false, _entityID); aew.ShowDialog(); if (!aew.Cancelled) { refreshDataGrid(); } break; case "buttonDelete": string msgCannotDelete = ""; bool deleteSuccess = false; switch (_entityType) { case "Gear": if (BSCEntities.GearViewModel.CanDeleteEntity(Gear)) { BSCEntities.GearViewModel.DeleteRecordFromRepo(Gear.GearName); deleteSuccess = true; } else { msgCannotDelete = $"Cannot delete the gear '{Gear.GearName}' because it is already used by the database"; } break; case "Fisher": if (Entities.BSCEntities.FisherViewModel.CanDeleteEntity(Fisher)) { Entities.BSCEntities.FisherViewModel.DeleteRecordFromRepo(_entityID); deleteSuccess = true; } else { msgCannotDelete = $"Cannot delete the fisher '{Fisher.FisherName}' because it is already used by the database"; } break; case "LandingSite": if (BSCEntities.LandingSiteViewModel.CanDeleteEntity(LandingSite)) { Entities.BSCEntities.LandingSiteViewModel.DeleteRecordFromRepo(LandingSite.LandingSiteID); } else { msgCannotDelete = $"Cannot delete the GPS '{LandingSite.ToString()}' because it is already used by the database"; } break; case "GPS": if (Entities.BSCEntities.GPSViewModel.CanDeleteEntity(GPS)) { Entities.BSCEntities.GPSViewModel.DeleteRecordFromRepo(_entityID); deleteSuccess = true; } else { msgCannotDelete = $"Cannot delete the GPS '{GPS.ToString()}' because it is already used by the database"; } break; case "ProjectSetting": if (Entities.BSCEntities.ProjectSettingViewModel.CanDeleteEntity(ProjectSetting)) { Entities.BSCEntities.ProjectSettingViewModel.DeleteRecordFromRepo(ProjectSetting.ProjectID); deleteSuccess = true; } else { msgCannotDelete = $"Cannot delete the project '{ProjectSetting.ProjectName}' because it is already used by the database"; } break; } if (deleteSuccess) { //gridData.Items.Refresh(); refreshDataGrid(); } else { if (msgCannotDelete.Length > 0) { MessageBox.Show(msgCannotDelete, "Validation error", MessageBoxButton.OK, MessageBoxImage.Information); } } break; } }