diff options
| author | Jason Lepp <jlepp@arcresources.com> | 2010-10-15 15:35:55 -0600 |
|---|---|---|
| committer | Jason Lepp <jlepp@arcresources.com> | 2010-10-15 15:35:55 -0600 |
| commit | 1471213fb324d4e5eee3cd4aac09c62788eb4bbe (patch) | |
| tree | b68502649248788a1f11f0558159eac4a56e930d /src/MVPtoMVVM | |
| parent | 50b064f27dd3e67aa77ae9e0c7da35b9b951e463 (diff) | |
Tie the deletion to the parent window
Diffstat (limited to 'src/MVPtoMVVM')
| -rwxr-xr-x | src/MVPtoMVVM/presenters/IMvpPresenter.cs | 1 | ||||
| -rwxr-xr-x | src/MVPtoMVVM/presenters/MvpPresenter.cs | 7 | ||||
| -rwxr-xr-x | src/MVPtoMVVM/presenters/TodoItemPresenter.cs | 4 | ||||
| -rwxr-xr-x | src/MVPtoMVVM/repositories/TodoItemRepository.cs | 8 | ||||
| -rwxr-xr-x | src/MVPtoMVVM/views/ITodoItemView.cs | 3 |
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 |
