149 lines
3.1 KiB
C#
149 lines
3.1 KiB
C#
using Contracts.BindingModels;
|
||
using Contracts.SearchModels;
|
||
using Contracts.StoragesContracts;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.ComponentModel;
|
||
using System.Data;
|
||
using System.Drawing;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
using System.Windows.Forms;
|
||
|
||
namespace WinForm
|
||
{
|
||
public partial class FormShapes : Form
|
||
{
|
||
IShapeStorage _shapeStorage;
|
||
public FormShapes(IShapeStorage shapeStorage)
|
||
{
|
||
_shapeStorage = shapeStorage;
|
||
InitializeComponent();
|
||
LoadData();
|
||
}
|
||
private void LoadData()
|
||
{
|
||
|
||
try
|
||
{
|
||
var list = _shapeStorage.GetFullList();
|
||
|
||
|
||
if (list != null)
|
||
{
|
||
dataGridView1.DataSource = list;
|
||
dataGridView1.Columns["Id"].Visible = false;
|
||
dataGridView1.Columns["Name"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||
}
|
||
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||
}
|
||
}
|
||
private void AddShape()
|
||
{
|
||
var list = _shapeStorage.GetFullList();
|
||
list.Add(new());
|
||
|
||
if (list != null)
|
||
{
|
||
dataGridView1.DataSource = list;
|
||
dataGridView1.Columns["Id"].Visible = false;
|
||
dataGridView1.Columns["Name"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||
|
||
}
|
||
|
||
|
||
}
|
||
|
||
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
|
||
{
|
||
//просто найти кнопку
|
||
if (e.Control)
|
||
{
|
||
if (e.KeyCode == Keys.Delete)
|
||
{
|
||
AddShape();
|
||
}
|
||
}
|
||
else if (e.KeyCode == Keys.Delete)
|
||
{
|
||
RemoveShape();
|
||
}
|
||
}
|
||
private void RemoveShape()
|
||
{
|
||
if (dataGridView1.SelectedRows.Count > 0)
|
||
{
|
||
DialogResult result = MessageBox.Show(
|
||
"Вы уверены, что хотите удалить выбранные записи?",
|
||
"Подтверждение удаления",
|
||
MessageBoxButtons.YesNo,
|
||
MessageBoxIcon.Question
|
||
);
|
||
if (result == DialogResult.Yes)
|
||
{
|
||
if (MessageBox.Show("Удалить выбранный элемент", "Удаление",
|
||
MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||
{
|
||
_shapeStorage.Delete(new ShapeBindingModel() { Id = (int)dataGridView1.CurrentRow.Cells[1].Value });
|
||
LoadData();
|
||
}
|
||
|
||
}
|
||
LoadData();
|
||
}
|
||
else
|
||
{
|
||
MessageBox.Show("Выберите");
|
||
}
|
||
}
|
||
|
||
|
||
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
|
||
{
|
||
if (e.RowIndex >= 0)
|
||
{
|
||
DataGridViewRow row = dataGridView1.Rows[e.RowIndex];
|
||
|
||
int id = Convert.ToInt32(row.Cells["Id"].Value);
|
||
string? name = row.Cells["Name"].Value?.ToString();
|
||
|
||
if (string.IsNullOrWhiteSpace(name))
|
||
{
|
||
|
||
MessageBox.Show("Нельзя сохранить запись с пустым именем!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||
|
||
LoadData();
|
||
}
|
||
else
|
||
{
|
||
var model = new ShapeBindingModel
|
||
{
|
||
Id = id,
|
||
Name = name
|
||
};
|
||
|
||
if (model.Id == 0)
|
||
{
|
||
_shapeStorage.Insert(model);
|
||
}
|
||
else
|
||
{
|
||
_shapeStorage.Update(model);
|
||
}
|
||
|
||
LoadData();
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
}
|
||
}
|
||
|