private TaskStatusItemType[] CreateTaskStatusList() { List <TaskStatusItemType> statusList = new List <TaskStatusItemType>(); foreach (ServerTaskListItemType taskItem in taskList) { TaskStatusItemType statusItem = new TaskStatusItemType(); statusItem.taskId = taskItem.task.serverTask_ID; statusItem.taskStatus = taskItem.taskStatus; statusList.Add(statusItem); } return(statusList.ToArray()); }
public TaskStatusItemType[] SetTaskList(ServerTaskListItemType[] ControlTaskList) { lock (taskListLock) { List <TaskStatusItemType> statusList = new List <TaskStatusItemType>(); List <uint> delIdList = new List <uint>(); foreach (ServerTaskListItemType controlTaskItem in ControlTaskList) { bool exists = false; bool del = false; TaskStatusItemType statusItem = new TaskStatusItemType(); statusItem.taskId = controlTaskItem.task.serverTask_ID; foreach (ServerTaskListItemType taskItem in taskList) { if (controlTaskItem.task.serverTask_ID == taskItem.task.serverTask_ID) { exists = true; if (controlTaskItem.taskStatus == TaskStatusType.CONTROL_DEL) { if (!(controlTaskItem.task is TaskWithActivity)) { delIdList.Add(controlTaskItem.task.serverTask_ID); del = true; } else { taskItem.taskStatus = TaskStatusType.SERVER_DEL; statusItem.taskStatus = TaskStatusType.SERVER_DEL; } } else { statusItem.taskStatus = TaskStatusType.CONFLICT_CREATE_EXISTENT; } break; } } if (!exists) { if (controlTaskItem.taskStatus == TaskStatusType.CONTROL) { controlTaskItem.taskStatus = TaskStatusType.SERVER; statusItem.taskStatus = TaskStatusType.SERVER; taskList.Add(controlTaskItem); } else { statusItem.taskStatus = TaskStatusType.CONFLICT_DEL_NON_EXISTENT; } } if (!del) { statusList.Add(statusItem); } } // delete items without activity foreach (uint id in delIdList) { for (int i = 0; i < taskList.Count; i++) { if (taskList[i].task.serverTask_ID == id) { taskList.RemoveAt(i); break; } } } return(statusList.ToArray()); } }