public static Task ToDtoObject(this Trex.Server.Core.Model.Task task, bool includeParent, bool includeSubTasks, bool includeTimeEntries) { var dtoTask = new Task(); dtoTask.Guid = task.Guid; dtoTask.Id = task.Id; dtoTask.Name = task.Name; dtoTask.Description = task.Description; //if (task.ParentTask != null && includeParent) // dtoTask.ParentTask = task.ParentTask.ToDtoObject(false, false, false); if (task.ParentTask != null) { dtoTask.ParentTaskId = task.ParentTask.Id; } if (includeParent) { dtoTask.Project = task.Project.ToDtoObject(true, false, false); } dtoTask.ProjectId = task.Project.Id; if (includeSubTasks) { dtoTask.SubTasks = task.SubTasks.ToDtoObjects(includeParent, true, includeTimeEntries); } if (includeTimeEntries) { dtoTask.TimeEntries = task.TimeEntries.ToDtoObjects(includeParent); } dtoTask.TimeEstimated = task.TimeEstimated; dtoTask.TimeLeft = task.TimeLeft; dtoTask.BestCaseEstimate = task.BestCaseEstimate; dtoTask.WorstCaseEstimate = task.WorstCaseEstimate; dtoTask.RealisticEstimate = task.RealisticEstimate; dtoTask.Closed = task.Closed; dtoTask.CreateDate = task.CreateDate; dtoTask.CreatedBy = task.CreatedBy.ToDtoObject(false); return(dtoTask); }
public Task SaveTask(Task task) { try { var taskRepository = ObjectFactory.GetInstance <ITaskRepository>(); var taskFactory = ObjectFactory.GetInstance <ITaskFactory>(); var userRepository = ObjectFactory.GetInstance <IUserRepository>(); var projectRepository = ObjectFactory.GetInstance <IProjectRepository>(); var user = userRepository.GetByUserID(task.CreatedBy.UserId); var project = projectRepository.GetByID(task.ProjectId); Trex.Server.Core.Model.Task parentTask = null; if (task.ParentTaskId.HasValue) { parentTask = taskRepository.GetById(task.ParentTaskId.Value); } if (!taskRepository.ExistsByGuid(task.Guid)) { var newTask = taskFactory.Create(task.Guid, task.CreateDate, task.ChangeDate, task.Name, task.Description, user, project, null, parentTask, task.WorstCaseEstimate, task.BestCaseEstimate, task.RealisticEstimate, task.TimeEstimated, task.TimeLeft ); taskRepository.Update(newTask); task.Id = newTask.Id; task.Guid = newTask.Guid; } else { var originalTask = taskRepository.GetByGuid(task.Guid); originalTask.Name = task.Name; originalTask.Description = task.Description; originalTask.ParentTask = parentTask; originalTask.Project = project; originalTask.RealisticEstimate = task.RealisticEstimate; originalTask.BestCaseEstimate = task.BestCaseEstimate; originalTask.WorstCaseEstimate = task.WorstCaseEstimate; originalTask.TimeEstimated = task.TimeEstimated; originalTask.TimeLeft = task.TimeLeft; originalTask.Closed = task.Closed; taskRepository.Update(originalTask); } return(task); } catch (Exception ex) { OnError(ex); throw; } }