Commit 2856b73

Jason Lepp <jlepp@arcresources.com>
2010-10-15 19:27:22
Update the repository
1 parent eca7f7d
Changed files (4)
src/MVPtoMVVM/domain/TodoItem.cs
@@ -4,6 +4,7 @@ namespace MVPtoMVVM.domain
 {
     public class TodoItem
     {
+        public int Id { get; set; }
         public string Description { get; set; }
         public DateTime DueDate  { get; set; }
     }
src/MVPtoMVVM/repositories/ITodoItemRepository.cs
@@ -6,7 +6,7 @@ namespace MVPtoMVVM.repositories
     public interface ITodoItemRepository
     {
         void Add(TodoItem item);
-        TodoItem Get(string description);
+        TodoItem Get(int id);
         IEnumerable<TodoItem> GetAll();
     }
 }
\ No newline at end of file
src/MVPtoMVVM/repositories/TodoItemRepository.cs
@@ -8,26 +8,45 @@ namespace MVPtoMVVM.repositories
     public class TodoItemRepository : ITodoItemRepository
     {
         private List<TodoItem> items;
+        private int totalItems = 0;
 
         public TodoItemRepository()
         {
             items = new List<TodoItem>();
-            items.Add(new TodoItem {Description = "First One", DueDate = DateTime.Today});
+            Add(new TodoItem {Description = "First One", DueDate = DateTime.Today});
         }
 
         public void Add(TodoItem item)
         {
-            items.Add(item);
+            if (item.Id == 0)
+                AddItem(item);
+            else
+            {
+                UpdateItem(item);
+            }
         }
 
-        public TodoItem Get(string description)
+        public TodoItem Get(int id)
         {
-            return items.FirstOrDefault(x => x.Description == description);
+            return items.FirstOrDefault(x => x.Id == id);
         }
 
         public IEnumerable<TodoItem> GetAll()
         {
             return items.AsEnumerable();
         }
+        private void UpdateItem(TodoItem item)
+        {
+            items.Remove(items.Single(x => x.Id == item.Id));
+            items.Add(item);
+        }
+
+        private void AddItem(TodoItem item)
+        {
+            totalItems++;
+            item.Id = totalItems;
+            items.Add(item);
+        }
+
     }
 }
\ No newline at end of file
src/MVPtoMVVM.mvp/TodoItemView.xaml
@@ -7,5 +7,7 @@
     <StackPanel Orientation="Horizontal">
         <TextBox Name="description" Width="200"/>
         <DatePicker Name="dueDate" />
+        <Button Content="Save" Name="saveButton"></Button>
+        <Button Content="Del" Name="deleteButton"></Button>
     </StackPanel>
 </UserControl>