Exemple #1
0
        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();
        }
Exemple #2
0
 public void AddResource(ResourceInformation r)
 {
     Resources.Add(r);
 }