summaryrefslogtreecommitdiff
path: root/src/MVPtoMVVM
diff options
context:
space:
mode:
authorJason Lepp <jlepp@arcresources.com>2010-10-15 15:35:55 -0600
committerJason Lepp <jlepp@arcresources.com>2010-10-15 15:35:55 -0600
commit1471213fb324d4e5eee3cd4aac09c62788eb4bbe (patch)
treeb68502649248788a1f11f0558159eac4a56e930d /src/MVPtoMVVM
parent50b064f27dd3e67aa77ae9e0c7da35b9b951e463 (diff)
Tie the deletion to the parent window
Diffstat (limited to 'src/MVPtoMVVM')
-rwxr-xr-xsrc/MVPtoMVVM/presenters/IMvpPresenter.cs1
-rwxr-xr-xsrc/MVPtoMVVM/presenters/MvpPresenter.cs7
-rwxr-xr-xsrc/MVPtoMVVM/presenters/TodoItemPresenter.cs4
-rwxr-xr-xsrc/MVPtoMVVM/repositories/TodoItemRepository.cs8
-rwxr-xr-xsrc/MVPtoMVVM/views/ITodoItemView.cs3
5 files changed, 18 insertions, 5 deletions
diff --git a/src/MVPtoMVVM/presenters/IMvpPresenter.cs b/src/MVPtoMVVM/presenters/IMvpPresenter.cs
index 71e919f..24dc65b 100755
--- a/src/MVPtoMVVM/presenters/IMvpPresenter.cs
+++ b/src/MVPtoMVVM/presenters/IMvpPresenter.cs
@@ -7,5 +7,6 @@ namespace MVPtoMVVM.presenters
void SetView(IMvpView view);
void AddNewItem();
void CancelAllChanges();
+ void Remove(int itemId);
}
} \ No newline at end of file
diff --git a/src/MVPtoMVVM/presenters/MvpPresenter.cs b/src/MVPtoMVVM/presenters/MvpPresenter.cs
index f867614..380d335 100755
--- a/src/MVPtoMVVM/presenters/MvpPresenter.cs
+++ b/src/MVPtoMVVM/presenters/MvpPresenter.cs
@@ -1,10 +1,10 @@
using System;
using System.Collections.Generic;
-using System.Linq;
using MVPtoMVVM.domain;
using MVPtoMVVM.mappers;
using MVPtoMVVM.repositories;
using MVPtoMVVM.views;
+using System.Linq;
namespace MVPtoMVVM.presenters
{
@@ -39,6 +39,11 @@ namespace MVPtoMVVM.presenters
RefreshItems();
}
+ public void Remove(int itemId)
+ {
+ view.SetTodoItems(view.GetTodoItems().Where(x => x.Id != itemId));
+ }
+
private void InitializeView()
{
RefreshItems();
diff --git a/src/MVPtoMVVM/presenters/TodoItemPresenter.cs b/src/MVPtoMVVM/presenters/TodoItemPresenter.cs
index 8cb1c7b..96ee843 100755
--- a/src/MVPtoMVVM/presenters/TodoItemPresenter.cs
+++ b/src/MVPtoMVVM/presenters/TodoItemPresenter.cs
@@ -35,6 +35,7 @@ namespace MVPtoMVVM.presenters
private void InitializeView()
{
+ view.Id = Id;
view.Description = Description;
view.DueDate = DueDate;
view.SaveButtonEnabled = false;
@@ -51,7 +52,8 @@ namespace MVPtoMVVM.presenters
public void DeleteItem()
{
var item = itemMapper.MapFrom(this);
- itemRepository.Delete(item);
+ view.Remove(item.Id);
+ itemRepository.Delete(item);
}
private string description;
diff --git a/src/MVPtoMVVM/repositories/TodoItemRepository.cs b/src/MVPtoMVVM/repositories/TodoItemRepository.cs
index 01fcf01..23418e5 100755
--- a/src/MVPtoMVVM/repositories/TodoItemRepository.cs
+++ b/src/MVPtoMVVM/repositories/TodoItemRepository.cs
@@ -8,7 +8,7 @@ namespace MVPtoMVVM.repositories
public class TodoItemRepository : ITodoItemRepository
{
private static readonly List<TodoItem> items = new List<TodoItem>();
- private int totalItems = 0;
+ private static int totalItems;
public TodoItemRepository()
{
@@ -38,12 +38,14 @@ namespace MVPtoMVVM.repositories
public void Delete(TodoItem item)
{
- items.Remove(item);
+ var repoItem = items.Find(x => x.Id == item.Id);
+ items.Remove(repoItem);
}
private void UpdateItem(TodoItem item)
{
- items.Remove(items.Single(x => x.Id == item.Id));
+ var oldItem = items.Single(x => x.Id == item.Id);
+ items.Remove(oldItem);
items.Add(item);
}
diff --git a/src/MVPtoMVVM/views/ITodoItemView.cs b/src/MVPtoMVVM/views/ITodoItemView.cs
index eae05fe..7d8c787 100755
--- a/src/MVPtoMVVM/views/ITodoItemView.cs
+++ b/src/MVPtoMVVM/views/ITodoItemView.cs
@@ -1,13 +1,16 @@
using System;
+using MVPtoMVVM.domain;
using MVPtoMVVM.presenters;
namespace MVPtoMVVM.views
{
public interface ITodoItemView
{
+ int Id { get; set; }
string Description { get; set; }
DateTime DueDate { get; set; }
bool SaveButtonEnabled { get; set; }
ITodoItemPresenter Presenter { get; }
+ void Remove(int itemId);
}
} \ No newline at end of file