/* * Update a TaskList * * @param: TaskListInserted : a callback * @param: t : TaskList */ public void UpdateTaskList(Action<IRestResponse<TaskList>> TaskListUpdated, TaskList t) { _oAuth.GetAccessCode(access_token => { lock (_sync) { _requesting++; // building request _client.Authenticator = new OAuth2AuthorizationRequestHeaderAuthenticator(access_token); var request = new RestRequest("/tasks/v1/users/@me/lists/" + t.Id, Method.PUT); // serialize TaskList string taskListJson = JsonConvert.SerializeObject(t, Formatting.None, _serializerSettings); request.AddParameter("application/json; charset=utf-8", taskListJson, ParameterType.RequestBody); LaunchTimer(); _client.ExecuteAsync<TaskList>(request, response => { lock (_sync) { _requesting--; // handle request's callback if (response.Data != null) { // update Tasklist by removing/adding foreach (TaskList _t in _taskLists) { if (!t.Id.Equals(_t.Id)) continue; _taskLists.Remove(_t); _taskLists.Add(response.Data); break; } } if (TaskListUpdated != null) TaskListUpdated(response); } }); } }); }
/* * Insert a TaskList * * @param: TaskListInserted : a callback * @param: t : TaskList */ public void InsertTaskList(Action<IRestResponse<TaskList>> TaskListInserted, TaskList t) { _oAuth.GetAccessCode(access_token => { lock (_sync) { _requesting++; // building request _client.Authenticator = new OAuth2AuthorizationRequestHeaderAuthenticator(access_token); var request = new RestRequest("/tasks/v1/users/@me/lists", Method.POST); // serialize TaskList string taskListJson = JsonConvert.SerializeObject(t, Formatting.None, _serializerSettings); request.AddParameter("application/json; charset=utf-8", taskListJson, ParameterType.RequestBody); LaunchTimer(); _client.ExecuteAsync<TaskList>(request, response => { lock (_sync) { _requesting--; // handle request's callback - adding the taskList if (response.Data != null && _taskLists != null) _taskLists.Add(response.Data); if (TaskListInserted != null) TaskListInserted(response); } }); } }); }