private async void EditButton_Click(object sender, EventArgs e) { if (!_recipesDataGridViewService.TryGetSelectedCellIndices(out var columnIndex, out var rowIndex, true)) { return; } if (columnIndex == -1) { MessageBoxService.ShowIncorrectSelectionWarning("Select cell you want to edit."); return; } var columnName = _recipesDataGridViewService.GetColumnName(columnIndex); if (columnName == ColumnName.Id || columnName == ColumnName.ClientId || columnName == ColumnName.ClientName || columnName == ColumnName.DiseaseId || columnName == ColumnName.DiseaseName) { MessageBoxService.ShowIncorrectSelectionWarning("You can't edit id."); return; } if (!_recipesDataGridViewService.TryParseIntCell(ColumnName.Id, rowIndex, out var recipeId)) { return; } var recipe = await _recipesService.ReadByIdAsync(recipeId); switch (columnName) { case ColumnName.Date: { var oldValue = recipe.Date; var editForm = new EditDateDialogForm(oldValue); editForm.ShowDialog(this); var editResult = editForm.DialogResult; var newValue = editForm.NewValue; editForm.Close(); if (editResult == DialogResult.Cancel) { return; } recipe.Date = newValue; break; } default: MessageBox.Show(@"Check database and debug code.", @"Unknown field.", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } await _recipesService.UpdateAsync(recipe); await RefreshRecipesDataGridViewAsync(); }