|
|
|
@ -26,8 +26,17 @@ namespace ToDoApp |
|
|
|
|
/// </summary> |
|
|
|
|
public partial class MainWindow : Window |
|
|
|
|
{ |
|
|
|
|
private enum Mode |
|
|
|
|
{ |
|
|
|
|
ToDo, |
|
|
|
|
Today, |
|
|
|
|
Planned, |
|
|
|
|
Completed, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private User _user; |
|
|
|
|
private Item _selectedItem; |
|
|
|
|
private Mode _currentMode; |
|
|
|
|
|
|
|
|
|
public MainWindow() |
|
|
|
|
{ |
|
|
|
@ -51,6 +60,7 @@ namespace ToDoApp |
|
|
|
|
{ |
|
|
|
|
tbName.Text = _user.Name; |
|
|
|
|
tbEmail.Text = _user.Email; |
|
|
|
|
_currentMode = Mode.ToDo; |
|
|
|
|
|
|
|
|
|
RefreshList(); |
|
|
|
|
} |
|
|
|
@ -87,26 +97,81 @@ namespace ToDoApp |
|
|
|
|
|
|
|
|
|
private void RefreshList() |
|
|
|
|
{ |
|
|
|
|
List<Item> items = GetAllItems(); |
|
|
|
|
SetToDoList(items); |
|
|
|
|
string modeTitle = _currentMode.ToString(); |
|
|
|
|
List<Item> items = new List<Item>(); |
|
|
|
|
|
|
|
|
|
switch (_currentMode) |
|
|
|
|
{ |
|
|
|
|
case Mode.ToDo: |
|
|
|
|
default: |
|
|
|
|
items = GetAllToDoItems(); |
|
|
|
|
break; |
|
|
|
|
case Mode.Today: |
|
|
|
|
items = GetTodayItems(); |
|
|
|
|
break; |
|
|
|
|
case Mode.Planned: |
|
|
|
|
items = GetPlannedItems(); |
|
|
|
|
break; |
|
|
|
|
case Mode.Completed: |
|
|
|
|
items = GetCompletedItems(); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
tbTitle.Text = modeTitle; |
|
|
|
|
SetItemList(items); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private List<Item> GetAllItems() |
|
|
|
|
private List<Item> GetAllToDoItems() |
|
|
|
|
{ |
|
|
|
|
return ItemService.Instance.FindAllNotCompletedItems(_user.Id); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void SetToDoList(List<Item> items) |
|
|
|
|
private List<Item> GetTodayItems() |
|
|
|
|
{ |
|
|
|
|
return ItemService.Instance.FindTodayItems(_user.Id); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private List<Item> GetPlannedItems() |
|
|
|
|
{ |
|
|
|
|
return ItemService.Instance.FindPlannedItems(_user.Id); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private List<Item> GetCompletedItems() |
|
|
|
|
{ |
|
|
|
|
return ItemService.Instance.FindCompletedItems(_user.Id); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void SetItemList(List<Item> items) |
|
|
|
|
{ |
|
|
|
|
List<ToDoListItem> list = new List<ToDoListItem>(); |
|
|
|
|
foreach (Item item in items) |
|
|
|
|
{ |
|
|
|
|
list.Add(new ToDoListItem(item)); |
|
|
|
|
ToDoListItem toDoItem = new ToDoListItem(item); |
|
|
|
|
toDoItem.ItemUpdateHandler += ToDoItem_ItemUpdateHandler; |
|
|
|
|
toDoItem.ItemRemoveHandler += ToDoItem_ItemRemoveHandler; |
|
|
|
|
toDoItem.ItemListRefreshHandler += ToDoItem_ItemListRefreshHandler; |
|
|
|
|
|
|
|
|
|
list.Add(toDoItem); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
lbxContent.ItemsSource = list; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void ToDoItem_ItemListRefreshHandler(object? sender, EventArgs e) |
|
|
|
|
{ |
|
|
|
|
RefreshList(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void ToDoItem_ItemRemoveHandler(object? sender, Item e) |
|
|
|
|
{ |
|
|
|
|
ItemService.Instance.RemoveItem(e); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void ToDoItem_ItemUpdateHandler(object? sender, Item e) |
|
|
|
|
{ |
|
|
|
|
ItemService.Instance.UpdateItem(e); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void SetSelectedItem(Item item) |
|
|
|
|
{ |
|
|
|
|
_selectedItem = item; |
|
|
|
@ -114,11 +179,9 @@ namespace ToDoApp |
|
|
|
|
tbxItemName.Text = _selectedItem.Title; |
|
|
|
|
tbItemCreatedAt.Text = _selectedItem.CreateDate.ToString("yyyy년 MM월 dd일 ddd 생성됨"); |
|
|
|
|
|
|
|
|
|
if (_selectedItem.DueDate != null) |
|
|
|
|
dpItemDueDate.SelectedDate = _selectedItem.DueDate; |
|
|
|
|
|
|
|
|
|
if (_selectedItem.Description != null) |
|
|
|
|
tbxItemDescription.Text = _selectedItem.Description; |
|
|
|
|
chkItemToday.IsChecked = _selectedItem.IsToday == true ? true : false; |
|
|
|
|
dpItemDueDate.SelectedDate = _selectedItem.DueDate; |
|
|
|
|
tbxItemDescription.Text = _selectedItem.Description == null ? "" : _selectedItem.Description; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void ClearSelectedItem() |
|
|
|
@ -131,11 +194,6 @@ namespace ToDoApp |
|
|
|
|
tbxItemDescription.Text = ""; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void tbxNewItemName_KeyDown(object sender, KeyEventArgs e) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void tbxSearch_KeyDown(object sender, KeyEventArgs e) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
@ -143,7 +201,14 @@ namespace ToDoApp |
|
|
|
|
|
|
|
|
|
private void btnUpdate_Click(object sender, RoutedEventArgs e) |
|
|
|
|
{ |
|
|
|
|
_selectedItem.Title = tbxItemName.Text; |
|
|
|
|
_selectedItem.IsToday = chkItemToday.IsChecked == true ? true : false; |
|
|
|
|
_selectedItem.DueDate = dpItemDueDate.SelectedDate; |
|
|
|
|
_selectedItem.Description = tbxItemDescription.Text; |
|
|
|
|
|
|
|
|
|
ItemService.Instance.UpdateItem(_selectedItem); |
|
|
|
|
|
|
|
|
|
RefreshList(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void btnDelete_Click(object sender, RoutedEventArgs e) |
|
|
|
@ -186,5 +251,29 @@ namespace ToDoApp |
|
|
|
|
|
|
|
|
|
SetSelectedItem(toDoListItem.Item); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void btnToday_Click(object sender, RoutedEventArgs e) |
|
|
|
|
{ |
|
|
|
|
_currentMode = Mode.Today; |
|
|
|
|
RefreshList(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void btnPlanned_Click(object sender, RoutedEventArgs e) |
|
|
|
|
{ |
|
|
|
|
_currentMode = Mode.Planned; |
|
|
|
|
RefreshList(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void btnCompleted_Click(object sender, RoutedEventArgs e) |
|
|
|
|
{ |
|
|
|
|
_currentMode = Mode.Completed; |
|
|
|
|
RefreshList(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void btnToDo_Click(object sender, RoutedEventArgs e) |
|
|
|
|
{ |
|
|
|
|
_currentMode = Mode.ToDo; |
|
|
|
|
RefreshList(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|