/// <summary>
		/// Saves the todo item to Azure storage async.
		/// </summary>
		/// <returns>The todo item async.</returns>
		/// <param name="item">The Item to save.</param>
		public async Task SaveTodoItemAsync (TodoItem item)
		{
			if (item.ID == null)
				await todoTable.InsertAsync (item);
			else
				await todoTable.UpdateAsync (item);
		}
		public async Task SaveTaskAsync (TodoItem item)
		{
			if (item.ID == null) {
				await todoTable.InsertAsync (item);
				//TodoViewModel.TodoItems.Add(item);
			} else {
                await todoTable.UpdateAsync(item);
            }
		}
		//		async Task DeleteItem (TodoItem item) {
		//			await manager.DeleteTaskAsync(item);
		//			todoList.ItemsSource = await manager.GetTodoItemsAsync ();
		//		}
			
		// Event handlers

		public async void OnAdd (object sender, EventArgs e)
		{
			if (!string.IsNullOrWhiteSpace (newItemName.Text)) {
				var todo = new TodoItem { Name = newItemName.Text, Notes = string.Empty };
				await AddItem (todo);
				newItemName.Text = "";
				newItemName.Unfocus ();
			}
		}
		/// <summary>
		/// Adds the new todo item.
		/// </summary>
		/// <param name="sender">Sender.</param>
		async partial void addNewTodoItem (Foundation.NSObject sender) {

			// Create a new item and save it to Azure
			var newTodo = new TodoItem {
				Name = newTodoItemName.StringValue
			};
			await manager.SaveTodoItemAsync (newTodo);

			// Update the interface
			await Reload ();
			newTodoItemName.StringValue = "";
		}
		/// <summary>
		/// Adds the new todo item.
		/// </summary>
		/// <param name="sender">Sender.</param>
		async partial void AddNewTodoItem (NSObject sender)
		{
			if (string.IsNullOrEmpty (Constants.ApplicationURL)) {
				// No, inform user
				ShowAlert ();
			} else {
				// Create a new item and save it to Azure
				var newTodo = new TodoItem {
					Name = newTodoItemName.StringValue
				};
				await manager.SaveTodoItemAsync (newTodo);

				// Update the interface
				await Reload ();
				newTodoItemName.StringValue = string.Empty;
			}
		}
		/// <summary>
		/// Deletes the todo item from Azure storage async.
		/// </summary>
		/// <returns>The todo item async.</returns>
		/// <param name="item">The Item to delete.</param>
		public async Task DeleteTodoItemAsync(TodoItem item)
		{
			try
			{
				await todoTable.DeleteAsync(item);
			}
			catch (MobileServiceInvalidOperationException msioe)
			{
				Debug.WriteLine(@"INVALID {0}", msioe.Message);
			}
			catch (Exception e)
			{
				Debug.WriteLine(@"ERROR {0}", e.Message);
			}
		}
		async Task CompleteItem (TodoItem item)
		{
			item.Done = true;
			await manager.SaveTaskAsync (item);
			todoList.ItemsSource = await manager.GetTodoItemsAsync ();
		}
		// Data methods

		async Task AddItem (TodoItem item)
		{
			await manager.SaveTaskAsync (item);
			todoList.ItemsSource = await manager.GetTodoItemsAsync ();
		}