/// <summary>
 /// Deserialize the object
 /// </summary>
 public static IList<ToDoItem> DeserializeJson(JToken inputObject)
 {
     IList<ToDoItem> deserializedObject = new List<ToDoItem>();
     foreach (JToken iListValue in ((JArray)inputObject))
     {
         ToDoItem toDoItem = new ToDoItem();
         toDoItem.DeserializeJson(iListValue);
         deserializedObject.Add(toDoItem);
     }
     return deserializedObject;
 }
 // POST: api/ToDoItemList
 public async Task Post(ToDoItem todo)
 {
     //owner = ((ClaimsIdentity)User.Identity).FindFirst(ClaimTypes.NameIdentifier).Value;
     todo.Owner = owner;
     using (var client = NewDataAPIClient())
     {
         await client.ToDoList.PostByTodoAsync(new ToDoItem
         {
             Description = todo.Description,
             ID = todo.ID,
             Owner = todo.Owner
         });
     }
 }
 /// <param name='operations'>
 /// Reference to the ToDoListAPI.IToDoList.
 /// </param>
 /// <param name='todo'>
 /// Required.
 /// </param>
 /// <param name='cancellationToken'>
 /// Cancellation token.
 /// </param>
 public static async Task<object> PutByTodoAsync(this IToDoList operations, ToDoItem todo, CancellationToken cancellationToken = default(System.Threading.CancellationToken))
 {
     Microsoft.Rest.HttpOperationResponse<object> result = await operations.PutByTodoWithOperationResponseAsync(todo, cancellationToken).ConfigureAwait(false);
     return result.Body;
 }
 /// <param name='operations'>
 /// Reference to the ToDoListAPI.IToDoList.
 /// </param>
 /// <param name='todo'>
 /// Required.
 /// </param>
 public static object PutByTodo(this IToDoList operations, ToDoItem todo)
 {
     return Task.Factory.StartNew((object s) => 
     {
         return ((IToDoList)s).PutByTodoAsync(todo);
     }
     , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult();
 }