コード例 #1
0
        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;
                }
            }
        }
コード例 #2
0
        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;
            }
        }