public ProjectTask AddProjectTask(ProjectTask projecttask) { List <ProjectTask> projecttasks = ProjectTasks.Where(c => c.TaskId.Equals(projecttask.TaskId)).ToList(); Project prj = Projects.Where(x => x.ProjectID == projecttask.ProjectID).Select(x => x).FirstOrDefault(); People ppl = Peoples.Where(x => x.Deleted == false).Where(x => x.PeopleID == projecttask.PeopleID).Select(x => x).FirstOrDefault(); Customer cust = Customers.Where(x => x.CustomerId == projecttask.CustomerId).Select(x => x).FirstOrDefault(); ProjectTask objProjectTask = new ProjectTask(); if (projecttasks.Count == 0) { projecttask.CreatedBy = projecttask.CreatedBy; projecttask.CreatedDate = DateTime.Now; projecttask.UpdatedDate = DateTime.Now; //projecttask.ProjectName = projecttask.ProjectName; projecttask.ProjectName = prj.ProjectName; projecttask.CustomerName = cust.Name; projecttask.PeopleID = ppl.PeopleID; ProjectTasks.Add(projecttask); int id = this.SaveChanges(); return(projecttask); } else { //objProject.Exception = "Already"; return(objProjectTask); } //this.ProjectTasks.Add(projecttask); //this.SaveChanges(); //return projecttask; }
public void SaveTask(string taskContent) { if (_updateableTask == null) { Console.WriteLine("insert task"); var task = new Task { Content = TaskContent, DueDate = TaskDueDate, Priority = TaskPriority }; DataBase.InsertTask(task, _project.ID); ProjectTasks.Add(task); } else { if (_updateableTask is Task task) { if (!_isSubTask) { Console.WriteLine("update task"); var index = ProjectTasks.IndexOf(task); task.Content = TaskContent; task.DueDate = TaskDueDate; task.Priority = TaskPriority; //ProjectTasks.Insert(index, task); //ProjectTasks.RemoveAt(index + 1); DataBase.UpdateTask(task); _updateableTask = null; } else { Console.WriteLine("insert subtask"); var newSubTask = new SubTask { Content = TaskContent, DueDate = TaskDueDate, Priority = TaskPriority }; DataBase.InsertSubTask(newSubTask, task.ID); task.SubTasks.Add(newSubTask); } } if (_updateableTask is SubTask subTask) { Console.WriteLine("Update subtask"); var subtaskIndex = -1; var taskIndex = -1; for (int i = 0; i < ProjectTasks.Count; i++) { for (int j = 0; j < ProjectTasks[i].SubTasks.Count; j++) { if (Equals(_updateableTask, ProjectTasks[i].SubTasks[j])) { taskIndex = i; subtaskIndex = j; } } } subTask.Content = TaskContent; subTask.DueDate = TaskDueDate; subTask.Priority = TaskPriority; //ProjectTasks[taskIndex].SubTasks.Insert(subtaskIndex, subTask); //ProjectTasks[taskIndex].SubTasks.RemoveAt(subtaskIndex + 1); DataBase.UpdateTask(subTask); _updateableTask = null; _isSubTask = false; } _isSubTask = false; _editableComponent = null; } ShowAddTaskPanel(); ResetNewTaskProperties(); }