async public void RegisterTaskData(object sender, RoutedEventArgs e) { try { string pattern = @"<.*?>"; TaskData = Regex.Replace(TaskData, pattern, string.Empty); // Control Progress Dialog var progressDialog = new RegisterProgressDialog(); var showingDialog = progressDialog.ShowAsync(); // Changes ValidFlag value of All tasks for this plan date to false // If there is a task data in TaskData, the ValidFlag value of the task will change to true after this below processing List <EachTask> specificDateClassificationData = GetSpecificDateEachTasks(PlanDate); foreach (EachTask classificationTask in specificDateClassificationData) { EachTaskModel.ChangeValidFlag(classificationTask.EachTaskId, false); List <EachTask> smallTaskList = GetSpecificTaskSmallTasks(classificationTask.EachTaskId); foreach (EachTask smallTask in smallTaskList) { EachTaskModel.ChangeValidFlag(smallTask.EachTaskId, false); } } if (!TaskData.StartsWith("#")) { showingDialog.Cancel(); progressDialog.Hide(); CommonViewModel.NotifySystemMessage(GetLangMessage.GetMessage("Msg1001")); return; } String TaskDataToRegister = "\r" + TaskData; TaskDataToRegister = TaskDataToRegister.Replace("\r\r", "\r"); string[] largeTaskStrings = TaskDataToRegister.Split("\r#"); int LargetTaskRank = 1; bool reviewRegisterFlag = false; foreach (string eachLargeTask in largeTaskStrings) { if (string.IsNullOrWhiteSpace(eachLargeTask)) { continue; } List <string> taskStrings = eachLargeTask.Split("\r-").ToList(); taskStrings = taskStrings.Select(str => str.Replace("\r", string.Empty)).ToList(); string classificationTask = taskStrings[0].TrimStart(); // If review task has been registerd already, change the flag to on to avoid registering twice if (classificationTask == GetLangMessage.GetMessage("Msg2005")) { reviewRegisterFlag = true; } EachTask newClassificationTask = new EachTask() { PlanDate = this.PlanDate, Content = classificationTask, RegisteredDate = DateTime.Now.ToLocalTime(), ParentEachTaskId = string.Empty, Rank = LargetTaskRank, ValidFlag = true }; // Checks if the task has been already registered by checking EachTaskId string classificationId = EachTaskModel.GetEachTaskId(newClassificationTask); if (string.IsNullOrWhiteSpace(classificationId)) { classificationId = EachTaskModel.RegisterTask(newClassificationTask); } else { await EachTaskModel.UpdateTaskRankAsync(classificationId, LargetTaskRank); EachTaskModel.ChangeValidFlag(classificationId, true); } int smallTaskRank = 1; string smallTaskId = string.Empty; foreach (string eachTaskString in taskStrings.GetRange(1, taskStrings.Count - 1)) { EachTask newTask = new EachTask() { PlanDate = this.PlanDate, Content = eachTaskString.Substring(1).TrimStart(), RegisteredDate = DateTimeOffset.Now.ToLocalTime(), ParentEachTaskId = classificationId.ToString(), Rank = smallTaskRank, ValidFlag = true }; smallTaskId = EachTaskModel.GetEachTaskId(newTask); if (string.IsNullOrWhiteSpace(smallTaskId)) { await EachTaskModel.RegisterTaskAsync(newTask); } else { await EachTaskModel.UpdateTaskRankAsync(smallTaskId, smallTaskRank); EachTaskModel.ChangeValidFlag(smallTaskId, true); } smallTaskRank = smallTaskRank + 1; } LargetTaskRank = LargetTaskRank + 1; } // Add ReviewTask at last if (!reviewRegisterFlag) { EachTask newClassificationTask = new EachTask() { PlanDate = this.PlanDate, Content = GetLangMessage.GetMessage("Msg2005"), RegisteredDate = DateTime.Now.ToLocalTime(), ParentEachTaskId = string.Empty, Rank = LargetTaskRank, ValidFlag = true }; EachTaskModel.RegisterTask(newClassificationTask); } // Close Dialog Window showingDialog.Cancel(); progressDialog.Hide(); // Control Progress Dialog var completeDialog = new RegisterCompleteDialog(); var noticeCompleteDialog = completeDialog.ShowAsync(); await Task.Delay(700); noticeCompleteDialog.Cancel(); completeDialog.Hide(); } catch { CommonViewModel.NotifySystemMessage(GetLangMessage.GetMessage("Exception")); } }
async public void RegisterTaskData(object sender, RoutedEventArgs e) { // Changes ValidFlag value of All tasks for this plan date to false // If there is a task data in TaskData, the ValidFlag value of the task will change to true after this below processing List <EachTask> specificDateClassificationData = GetSpecificDateEachTasks(PlanDate); foreach (EachTask classificationTask in specificDateClassificationData) { EachTaskModel.ChangeValidFlag(classificationTask.EachTaskId, false); List <EachTask> smallTaskList = GetSpecificTaskSmallTasks(classificationTask.EachTaskId); foreach (EachTask smallTask in smallTaskList) { EachTaskModel.ChangeValidFlag(smallTask.EachTaskId, false); } } String TaskDataToRegister = "\r" + TaskData; TaskDataToRegister = TaskDataToRegister.Replace("\r\r", "\r"); string[] largeTaskStrings = TaskDataToRegister.Split("\r#"); int LargetTaskRank = 1; foreach (string eachLargeTask in largeTaskStrings) { if (string.IsNullOrWhiteSpace(eachLargeTask)) { continue; } List <string> taskStrings = eachLargeTask.Split("\r-").ToList(); string classificationTask = taskStrings[0].TrimStart(); EachTask newClassificationTask = new EachTask() { PlanDate = this.PlanDate, Content = classificationTask, RegisteredDate = DateTime.Now.ToLocalTime(), ParentEachTaskId = string.Empty, Rank = LargetTaskRank, ValidFlag = true }; // Checks if the task has been already registered by checking EachTaskId string classificationId = EachTaskModel.GetEachTaskId(newClassificationTask); if (string.IsNullOrWhiteSpace(classificationId)) { classificationId = EachTaskModel.RegisterTask(newClassificationTask); } else { await EachTaskModel.UpdateTaskRankAsync(classificationId, LargetTaskRank); EachTaskModel.ChangeValidFlag(classificationId, true); } int smallTaskRank = 1; string smallTaskId = string.Empty; foreach (string eachTaskString in taskStrings.GetRange(1, taskStrings.Count - 1)) { EachTask newTask = new EachTask() { PlanDate = this.PlanDate, Content = eachTaskString.Substring(1).TrimStart(), RegisteredDate = DateTimeOffset.Now.ToLocalTime(), ParentEachTaskId = classificationId.ToString(), Rank = smallTaskRank, ValidFlag = true }; smallTaskId = EachTaskModel.GetEachTaskId(newTask); if (string.IsNullOrWhiteSpace(smallTaskId)) { await EachTaskModel.RegisterTaskAsync(newTask); } else { await EachTaskModel.UpdateTaskRankAsync(smallTaskId, smallTaskRank); EachTaskModel.ChangeValidFlag(smallTaskId, true); } smallTaskRank = smallTaskRank + 1; } LargetTaskRank = LargetTaskRank + 1; } }