Exemplo n.º 1
0
        /// <summary>
        /// 将Task转换为TaskSyncData
        /// </summary>
        private TaskSyncData CreateFromTask(Cooper.Model.Tasks.Task task)
        {
            TaskSyncData data = new TaskSyncData();

            data.Id                  = task.ID.ToString();
            data.Subject             = task.Subject;
            data.Body                = task.Body;
            data.DueTime             = task.DueTime;
            data.IsCompleted         = task.IsCompleted;
            data.Priority            = ConvertToSyncDataPriority(task.Priority);
            data.CreateTime          = task.CreateTime;
            data.LastUpdateLocalTime = task.LastUpdateTime;
            return(data);
        }
Exemplo n.º 2
0
 /// <summary>
 /// 设置任务的最后更新时间
 /// </summary>
 protected void UpdateTaskLastUpdateTime(long taskId, DateTime lastUpdateTime)
 {
     Cooper.Model.Tasks.Task task = _taskService.GetTask(taskId);
     task.SetLastUpdateTime(lastUpdateTime);
     _taskService.Update(task);
 }
Exemplo n.º 3
0
        /// <summary>
        /// 持久化本地需要增删改的任务
        /// </summary>
        private void PersistLocalTaskDatas(TaskSyncResult taskSyncResult, Account account)
        {
            if (taskSyncResult.LocalDatasToCreate.Count() == 0 && taskSyncResult.LocalDatasToUpdate.Count() == 0 && taskSyncResult.LocalDatasToDelete.Count() == 0)
            {
                return;
            }
            //处理在本地需要新增的任务
            foreach (var taskData in taskSyncResult.LocalDatasToCreate)
            {
                //TODO, 以后下面这三步需要放在一个Transaction中实现

                //创建任务
                CooperTask task = new CooperTask(account);

                task.SetSubject(taskData.Subject ?? string.Empty);
                task.SetBody(FormatTaskBody(taskData.Body));
                task.SetDueTime(FormatTaskDueTime(taskData.DueTime));
                if (taskData.IsCompleted)
                {
                    task.MarkAsCompleted();
                }
                else
                {
                    task.MarkAsInCompleted();
                }
                task.SetPriority(ConvertToPriority(taskData.Priority));

                _taskService.Create(task);

                //任务创建后更新最后更新时间,更新为和这条任务关联的外部系统任务的最后更新时间
                task.SetLastUpdateTime(taskData.LastUpdateLocalTime);
                _taskService.Update(task);

                //创建同步信息
                if (taskData.IsFromDefault)
                {
                    SyncInfo syncInfo = new SyncInfo();
                    syncInfo.AccountId    = account.ID;
                    syncInfo.LocalDataId  = task.ID.ToString();
                    syncInfo.SyncDataId   = taskData.SyncId;
                    syncInfo.SyncDataType = taskData.SyncType;
                    InsertSyncInfo(syncInfo);
                }
            }

            //处理在本地需要更新的任务
            foreach (var taskData in taskSyncResult.LocalDatasToUpdate)
            {
                //更新任务
                CooperTask task = _taskService.GetTask(long.Parse(taskData.Id));

                task.SetSubject(taskData.Subject ?? string.Empty);
                task.SetBody(FormatTaskBody(taskData.Body));
                task.SetDueTime(FormatTaskDueTime(taskData.DueTime));
                if (taskData.IsCompleted)
                {
                    task.MarkAsCompleted();
                }
                else
                {
                    task.MarkAsInCompleted();
                }
                task.SetPriority(ConvertToPriority(taskData.Priority));

                _taskService.Update(task);

                //任务更新后更新最后更新时间,更新为和这条任务关联的外部系统任务的最后更新时间
                task.SetLastUpdateTime(taskData.LastUpdateLocalTime);
                _taskService.Update(task);
            }

            //暂时去掉删除本地数据的功能
            ////处理在本地需要删除的任务
            //foreach (var taskData in taskSyncResult.LocalDatasToDelete)
            //{
            //    Cooper.Model.Tasks.Task task = _taskService.GetTask(long.Parse(taskData.Id));
            //    _taskService.Delete(task);

            //    //删除同步信息
            //    SyncInfo syncInfo = new SyncInfo();
            //    syncInfo.AccountId = account.ID;
            //    syncInfo.LocalDataId = task.ID.ToString();
            //    syncInfo.SyncDataId = taskData.SyncId;
            //    syncInfo.SyncDataType = taskData.SyncType;
            //    DeleteSyncInfo(syncInfo);
            //}
        }
Exemplo n.º 4
0
 /// <summary>断言任务是否有效
 /// </summary>
 /// <param name="task"></param>
 public static void IsValid(Cooper.Model.Tasks.Task task)
 {
     Assert.IsNotNull(task);
     Assert.Greater(task.ID, 0);
 }