private void GetTasksAfterResponse(string tasklistId, ResultCode resultCode, RestResponse response) { string result = response.Content; JObject dict = (JObject)result.ToJSONObject(); string tasklist_editableString = dict["Editable"].Value<string>(); this._tasklistRepository.UpdateEditable(tasklist_editableString.ToLower().Equals("true") ? 1 : 0, tasklistId); this._taskRepository.DeleteAll(tasklistId); this._taskIdxRepository.DeleteAll(tasklistId); JArray tasksArray = (JArray)dict["List"]; JArray taskIdxsArray = (JArray)dict["Sorts"]; List<Task> tasks = new List<Task>(); for (int i = 0; i < tasksArray.Count; i++) { JToken taskDict = tasksArray[i]; string taskId = taskDict["ID"].Value<string>(); string subject = taskDict["Subject"].Value<string>(); string body = taskDict["Body"].Value<string>(); bool isCompleted = taskDict["IsCompleted"].Value<bool>(); string priority = taskDict["Priority"].Value<string>(); bool editable = taskDict["Editable"].Value<bool>(); string dueTimeString = taskDict["DueTime"].Value<string>(); Task task = new Task(); task.Subject = subject; DateTime currentDate = DateTime.Now; task.CreateDate = currentDate; task.LastUpdateDate = currentDate; task.Body = body; task.IsPublic = true; task.Status = isCompleted ? 1 : 0; task.Priority = priority; task.TaskId = taskId; DateTime dueTime; if (DateTime.TryParse(dueTimeString, out dueTime)) { task.DueDate = dueTime; } task.Editable = editable; task.TasklistId = tasklistId; if (IsolatedStorageSettings.ApplicationSettings.Contains(Constant.USERNAME_KEY)) { string username = (string)IsolatedStorageSettings.ApplicationSettings[Constant.USERNAME_KEY]; task.AccountId = username; } else { task.AccountId = ""; } tasks.Add(task); } this._taskRepository.AddTasks(tasks); List<TaskIdx> taskIdxs = new List<TaskIdx>(); for (int i = 0; i < taskIdxsArray.Count; i++) { JToken taskIdxDict = taskIdxsArray[i]; string by = taskIdxDict["By"].Value<string>(); string taskIdxKey = taskIdxDict["Key"].Value<string>(); string name = taskIdxDict["Name"].Value<string>(); JArray indexsArray = (JArray)taskIdxDict["Indexs"]; string indexes = indexsArray.ToJSONString(); TaskIdx taskIdx = new TaskIdx(); taskIdx.By = by; taskIdx.Key = taskIdxKey; taskIdx.Name = name; taskIdx.Indexes = indexes; taskIdx.TasklistId = tasklistId; if (IsolatedStorageSettings.ApplicationSettings.Contains(Constant.USERNAME_KEY)) { string username = (string)IsolatedStorageSettings.ApplicationSettings[Constant.USERNAME_KEY]; taskIdx.AccountId = username; } else { taskIdx.AccountId = ""; } taskIdxs.Add(taskIdx); } this._taskIdxRepository.AddTaskIdxs(taskIdxs); resultCode.Status = true; this.DispatchCommandResult(resultCode); }
/// <summary> /// 保存 /// </summary> /// <param name="options">条件</param> public void save(string options) { ResultCode resultCode = new ResultCode(); SignKeyOptions keyOptions = JsonHelper.Deserialize<SignKeyOptions>(options); if (keyOptions.Key.Equals(Constant.CREATETASKLIST)) { #region 创建任务列表 CreateTasklistOptions createTasklistOptions = JsonHelper.Deserialize<CreateTasklistOptions>(options); string tasklistId = createTasklistOptions.Id; string tasklistName = createTasklistOptions.Name; string tasklistType = createTasklistOptions.Type; Tasklist tasklist = new Tasklist(); tasklist.TasklistId = tasklistId; tasklist.Name = tasklistName; tasklist.ListType = tasklistType; tasklist.Editable = true; if (IsolatedStorageSettings.ApplicationSettings.Contains(Constant.USERNAME_KEY)) { tasklist.AccountId = IsolatedStorageSettings.ApplicationSettings[Constant.USERNAME_KEY].ToString(); } else { tasklist.AccountId = ""; } this._tasklistRepository.AddTasklist(tasklist); resultCode.Status = true; this.DispatchCommandResult(resultCode); #endregion } else if (keyOptions.Key.Equals(Constant.CREATETASK)) { #region 创建任务 JObject updateTaskOptions = (JObject)options.ToJSONObject(); string tasklistId = updateTaskOptions["tasklistId"].Value<string>(); JToken taskDict = (JToken)updateTaskOptions["task"]; JArray changesArray = (JArray)updateTaskOptions["changes"]; DateTime currentDate = DateTime.Now; string subject = taskDict["subject"].Value<string>(); string body = taskDict["body"].Value<string>(); string isCompleted = taskDict["isCompleted"].Value<string>(); string priority = taskDict["priority"].Value<string>(); string id = taskDict["id"].Value<string>(); string dueTime = taskDict["dueTime"].Value<string>(); Task t = new Task(); t.TaskId = id; t.Subject = subject; t.LastUpdateDate = currentDate; t.Body = body; t.IsPublic = true; if (isCompleted.ToLower().Equals("true")) { t.Status = 1; } else { t.Status = 0; } t.Priority = priority; if (!string.IsNullOrEmpty(dueTime)) { t.DueDate = Convert.ToDateTime(dueTime); } t.Editable = true; t.TasklistId = tasklistId; if (IsolatedStorageSettings.ApplicationSettings.Contains(Constant.USERNAME_KEY)) { t.AccountId = IsolatedStorageSettings.ApplicationSettings[Constant.USERNAME_KEY].ToString(); } else { t.AccountId = ""; } this._taskRepository.AddTask(t); this._taskIdxRepository.AddTaskIdx(id, priority, tasklistId); for (int i = 0; i < changesArray.Count; i++) { JToken dict = (JToken)changesArray[i]; string name = dict["Name"].Value<string>(); string value = dict["Value"].Value<string>(); string taskId = dict["ID"].Value<string>(); string type = dict["Type"].Value<string>(); this._changeLogRepository.AddChangeLog(type, taskId, name, value, tasklistId); } resultCode.Status = true; this.DispatchCommandResult(resultCode); #endregion } else if (keyOptions.Key.Equals(Constant.UPDATETASK)) { #region 更新任务 JObject updateTaskOptions = (JObject)options.ToJSONObject(); string tasklistId = updateTaskOptions["tasklistId"].Value<string>(); JToken taskDict = (JToken)updateTaskOptions["task"]; JArray changesArray = (JArray)updateTaskOptions["changes"]; DateTime currentDate = DateTime.Now; string subject = taskDict["subject"].Value<string>(); string body = taskDict["body"].Value<string>(); string isCompleted = taskDict["isCompleted"].Value<string>(); string priority = taskDict["priority"].Value<string>(); string id = taskDict["id"].Value<string>(); string dueTime = taskDict["dueTime"].Value<string>(); Task t = this._taskRepository.GetTaskById(id); string oldPriority = priority; if (t != null) { oldPriority = t.Priority; } t.Subject = subject; t.LastUpdateDate = currentDate; t.Body = body; t.IsPublic = true; if (isCompleted.ToLower().Equals("true")) { t.Status = 1; } else { t.Status = 0; } t.Priority = priority; if (!string.IsNullOrEmpty(dueTime)) { t.DueDate = Convert.ToDateTime(dueTime); } t.Editable = true; t.TasklistId = tasklistId; this._taskRepository.UpdateTask(t); if (!oldPriority.Equals(priority)) { this._taskIdxRepository.UpdateTaskIdx(id, priority, tasklistId); } for (int i = 0; i < changesArray.Count; i++) { JToken dict = (JToken)changesArray[i]; string name = dict["Name"].Value<string>(); string value = dict["Value"].Value<string>(); string taskId = dict["ID"].Value<string>(); string type = dict["Type"].Value<string>(); this._changeLogRepository.AddChangeLog(type, taskId, name, value, tasklistId); } resultCode.Status = true; this.DispatchCommandResult(resultCode); #endregion } else if (keyOptions.Key.Equals(Constant.DELETETASK)) { #region 删除任务 DeleteTaskOptions deleteTaskOptions = JsonHelper.Deserialize<DeleteTaskOptions>(options); string tasklistId = deleteTaskOptions.TasklistId; string taskId = deleteTaskOptions.TaskId; this._changeLogRepository.AddChangeLog("1", taskId, "", "", tasklistId); this._taskIdxRepository.DeleteTaskIndexesByTaskId(taskId, tasklistId); Task task = this._taskRepository.GetTaskById(taskId); if (task != null) { this._taskRepository.DeleteTask(task); } resultCode.Status = true; this.DispatchCommandResult(resultCode); #endregion } }
public void AddTask(Task task) { this._context.Tasks.InsertOnSubmit(task); this._context.SubmitChanges(); }
public void DeleteTask(Task task) { this._context.Tasks.DeleteOnSubmit(task); this._context.SubmitChanges(); }
public void UpdateTask(Task task) { this._context.SubmitChanges(); }