using System;
using System.Linq;
using System.Windows.Forms;
namespace TodoListApp
{
public partial class Form1 : Form
{
private TodoModelContainer db;
public Form1()
{
InitializeComponent();
db = TodoMemoryContext.Create();
btnAdd.Click += btnAdd_Click;
btnComplete.Click += btnComplete_Click;
btnDelete.Click += btnDelete_Click;
LoadTasks();
}
private void LoadTasks()
{
dgvTasks.DataSource = null;
dgvTasks.DataSource =
db.TodoItems.ToList();
}
private void btnAdd_Click(object sender, EventArgs e)
{
string title = txtTitle.Text.Trim();
if (title == "")
{
MessageBox.Show("Введите задачу!");
return;
}
TodoItem task = new TodoItem();
task.Title = title;
task.IsCompleted = false;
task.CreatedAt = DateTime.Now;
db.TodoItems.Add(task);
db.SaveChanges();
txtTitle.Clear();
LoadTasks();
}
private void btnComplete_Click(object sender, EventArgs e)
{
TodoItem task = GetSelectedTask();
if (task == null)
{
MessageBox.Show("Выберите задачу!");
return;
}
task.IsCompleted = !task.IsCompleted;
db.SaveChanges();
LoadTasks();
}
private void btnDelete_Click(object sender, EventArgs e)
{
TodoItem task = GetSelectedTask();
if (task == null)
{
MessageBox.Show("Выберите задачу!");
return;
}
db.TodoItems.Remove(task);
db.SaveChanges();
LoadTasks();
}
private TodoItem GetSelectedTask()
{
if (dgvTasks.CurrentRow == null)
return null;
return dgvTasks.CurrentRow.DataBoundItem
as TodoItem;
}
protected override void OnFormClosed(FormClosedEventArgs e)
{
if (db != null)
db.Dispose();
base.OnFormClosed(e);
}
}
}