using System;
using
Aspose.Tasks;
namespace
TestCompleteTask
{
class Program
{
static void Main(string[] args)
{
License license = new
License();
license.SetLicense("Aspose.Tasks.lic");
Project project = new
Project();
project.StartDate = new DateTime(2010, 12, 15, 8, 0, 0);
project.FinishDate = new DateTime(2011, 12, 31, 17, 0, 0);
project.MinutesPerDay = 8 * 60;
project.MinutesPerWeek = 5 * 8 * 60;
project.DaysPerMonth = 20;
project.DefaultStartTime = new DateTime(1, 1, 1, 8, 0, 0);
project.DefaultFinishTime = new DateTime(1, 1, 2, 17, 0, 0);
project.DurationFormat = TimeUnitType.Hour;
project.WorkFormat
= TimeUnitType.Hour;
Calendar standard = new
Calendar("Standard");
standard = Calendar.MakeStandardCalendar(standard);
project.Calendars.Add(standard);
project.Calendar = standard;
Calendar
employeeCalendar = new Calendar("Employee");
employeeCalendar.BaseCalendar = standard;
project.Calendars.Add(employeeCalendar);
//Create root task.
Task root = new Task();
root.Uid =
project.NextTaskUid;
root.Type =
TaskType.FixedUnits;
project.RootTask = root;
//Create a new completed task.
Task task = new Task("New
completed task.");
task.Uid =
project.NextTaskUid;
task.Type =
TaskType.FixedUnits;
task.Start
= new DateTime(2010,
12, 15, 8, 0, 0);
task.Duration = new TimeSpan(80, 0, 0);
task.Finish
= standard.GetFinishDateByStartAndWork(task.Start, task.Duration);
task.DurationFormat = TimeUnitType.Day;
task.Work =
task.Duration;
task.RegularWork = task.Work;
task.ActualStart = task.Start;
task.ActualFinish = task.Finish;
task.ActualDuration = task.Duration;
task.ActualWork = task.Work;
task.PercentComplete = 100;
project.RootTask.Children.Add(task);
//Create a root resource.
Resource res = new
Resource();
res.Uid =
project.NextResourceUid;
project.Resources.Add(res);
//Create a new resource.
Resource resource = new
Resource();
resource.Name = "Employee";
resource.Type = ResourceType.Work;
resource.Work = task.Duration;
resource.RegularWork = resource.Work;
resource.ActualWork = resource.Work;
resource.Uid = project.NextResourceUid;
resource.Calendar = employeeCalendar;
project.Resources.Add(resource);
//Create a resource assignment.
ResourceAssignment ra = new
ResourceAssignment();
ra.Uid =
project.NextResourceAssignmentUid;
ra.Task =
task;
ra.Resource
= resource;
ra.ActualWork = resource.Work;
ra.Work =
resource.Work;
ra.RegularWork = resource.Work;
ra.Start =
task.Start;
ra.Finish =
task.Finish;
ra.ActualStart = ra.Start;
ra.ActualFinish = ra.Finish;
ra.Units =
1;
project.ResourceAssignments.Add(ra);
project.CalcCalendarUids();
project.CalcTaskIds();
project.CalcResourceIds();
project.CalcResourceAssignmentIds();
ProjectWriter writer = new
ProjectWriter();
writer.Write(project, "Project3.xml",
TasksDataFormat.XML);
}
}
}
Again I can see the task as 100% completed in MS Project (2007).