public TaskWrapper(Task task) { if (task.SubTasks != null) { Subtasks = task.SubTasks.Select(x => new SubtaskWrapper(x, task)).ToList(); } CreatedBy = EmployeeWraper.Get(task.CreateBy); if (task.CreateBy != task.LastModifiedBy) { UpdatedBy = EmployeeWraper.Get(task.LastModifiedBy); } if (task.Responsible != Guid.Empty) { Responsible = EmployeeWraper.Get(task.Responsible); } Id = task.ID; Updated = (ApiDateTime)task.LastModifiedOn; Created = (ApiDateTime)task.CreateOn; Deadline = (task.Deadline == DateTime.MinValue ? null : (ApiDateTime)task.Deadline); Priority = task.Priority; Title = task.Title; Status = (int)task.Status; Description = task.Description; MilestoneId = task.Milestone; ProjectOwner = new SimpleProjectWrapper(task.Project); CanEdit = ProjectSecurity.CanEdit(task); CanWork = ProjectSecurity.CanWork(task); if (task.Milestone != 0 && task.MilestoneDesc != null) { Milestone = new SimpleMilestoneWrapper(task.MilestoneDesc); } if (task.Responsibles != null) { Responsibles = task.Responsibles.Select(x => EmployeeWraper.Get(x)).ToList(); } }