public TaskInformation(Issue issue, ResourceInformation assignedTo) { TaskName = issue.Subject; ID = issue.Id; Tracker = issue.Tracker.Name; double est = 0, spent = 0; if (issue.EstimatedHours.HasValue) { est = issue.EstimatedHours.Value; } if (issue.SpentHours.HasValue) { spent = issue.SpentHours.Value; } Duration = new WorkDuration(est, spent); CompletePercentage = int.Parse(issue.DoneRatio.Value.ToString()); if (CompletePercentage == 100 && Duration.Spent == 0) { Duration.Spent = Duration.Estimated; Duration.ReCalculateOvertime(); } Dates = new ProjectDates(issue.StartDate, issue.DueDate); Dates.SetCreatedDate(issue.CreatedOn); //Costs double costPerHour = assignedTo.CostPerTimeUnit; Cost = (int)(costPerHour * Duration.TotalDuration()); ActualCost = (int)(costPerHour * Duration.Spent); if (CompletePercentage == 100) { RemainingCost = 0; } else { RemainingCost = (int)(costPerHour * (Duration.Estimated - Duration.Spent)); } OverCost = (int)(costPerHour * Duration.Overtime); //TODO: issue status if (CompletePercentage == 100) { Status = TaskStatus.Closed; } else { Status = TaskStatus.InWork; } ChildTasks = new List <TaskInformation>(); SetAnomaly(); SetDeviation(); }
public void AddResource(ResourceInformation r) { Resources.Add(r); }