Example #1
0
        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);
        }
Example #2
0
        /// <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
            }
        }
Example #3
0
 public void AddTask(Task task)
 {
     this._context.Tasks.InsertOnSubmit(task);
     this._context.SubmitChanges();
 }
Example #4
0
 public void DeleteTask(Task task)
 {
     this._context.Tasks.DeleteOnSubmit(task);
     this._context.SubmitChanges();
 }
Example #5
0
 public void UpdateTask(Task task)
 {
     this._context.SubmitChanges();
 }