public DashboardViewModel Execute(DashboardViewModel inputModel) { if (inputModel.ItemNumber > 0) { using (TODOEntities1 context = new TODOEntities1()) { var itemToDelete = (from li in context.ListItems where li.ItemNumber == inputModel.ItemNumber select li); if (itemToDelete != null) { context.ListItems.DeleteObject(itemToDelete.First()); context.SaveChanges(); } var items = (from i in context.ListItems select i); List<ToDoItem> newList = new List<ToDoItem>(); foreach (ListItem lItem in items) { newList.Add(new ToDoItem(lItem.ItemNumber, lItem.ItemName)); } return new DashboardViewModel { Items = newList }; } } else if (inputModel.EditItem != null) { using (TODOEntities1 context = new TODOEntities1()) { string temp = inputModel.EditItem; int index = temp.IndexOf("-"); string newDescription = temp.Substring(index + 1).Trim(); int itemNumber = Convert.ToInt32(temp.Substring(0, index)); var itemToEdit = (from li in context.ListItems where li.ItemNumber == itemNumber select li); if (itemToEdit != null) { itemToEdit.First().ItemName = newDescription; context.AcceptAllChanges(); context.SaveChanges(); } var items = (from i in context.ListItems select i); List<ToDoItem> newList = new List<ToDoItem>(); foreach (ListItem lItem in items) { newList.Add(new ToDoItem(lItem.ItemNumber, lItem.ItemName)); } return new DashboardViewModel { Items = newList }; } } else { using (TODOEntities1 context = new TODOEntities1()) { var lastItem = (from li in context.ListItems select li.ItemNumber); int number = 1; if (lastItem.Count() > 0) { number = lastItem.Max() + 1; } ListItem nItem = new ListItem { ItemName = inputModel.NewItem, ItemNumber = number }; context.ListItems.AddObject(nItem); context.SaveChanges(); var items = (from i in context.ListItems select i); List<ToDoItem> newList = new List<ToDoItem>(); foreach (ListItem lItem in items) { newList.Add(new ToDoItem(lItem.ItemNumber, lItem.ItemName)); } return new DashboardViewModel { Items = newList }; } } }