Hi.
Hi Hamid,
Thank you for writing to Aspose support team.
I have tried following sample code using Aspose.Tasks for .NET 16.11.0 and opened the output file in MSP 2010. It is observed that task’s default constraint type is As Soon As Possible. Could you please give a try to the sample code using attached template file and share the feedback?
Project project = new Project(@“Blank2010.mpp”);
Task mspTask = project.RootTask.Children.Add("Task 1");
mspTask.Set(Tsk.Uid, 1);
mspTask.Set(Tsk.Name, "task.Name");
mspTask.Set(Tsk.Start, new DateTime(2016, 12, 5, 8, 0, 0));
ATasks.Calendar cal = project.Get(Prj.Calendar);
double totalHours = cal.GetWorkingHours(new DateTime(2016, 12, 5, 8, 0, 0), new DateTime(2016, 12, 5, 17, 0, 0)).WorkingHours.TotalHours + 8;
mspTask.Set(Tsk.Duration, project.GetDuration(totalHours, ATasks.TimeUnitType.Hour));
mspTask.Set(Tsk.IsManual, false);
mspTask.Set(Tsk.ConstraintType, ConstraintType.AsSoonAsPossible);
project.Save("outputWithBlank2010.mpp", SaveFileFormat.MPP);
Hi Kashif,
Hi Hamid,
Hi
Project project = new Project(path);
//project.CalculationMode = CalculationMode.Manual;
ATasks.Task mspTask;
ATasks.Resource mspResource;
ATasks.Util.ChildTasksCollector collector = new ATasks.Util.ChildTasksCollector();
ATasks.Util.TaskUtils.Apply(project.RootTask, collector, 0);
//Fill Tasks
foreach (var task in MspTasks)
{
if (task.ParentId.HasValue)
{
Task tsk = collector.Tasks.Find(o => o.Get(Tsk.Uid) == task.ParentId.Value);
mspTask = tsk.Children.Add();
}
else
{
mspTask = project.RootTask.Children.Add(task.Name);
}
DateTime start = task.Start ?? DateTime.Now;
DateTime end = task.Finish ?? DateTime.Now;
mspTask.Set(Tsk.Uid, task.Id);
mspTask.Set(Tsk.Name, task.Name);
mspTask.Set(Tsk.Start, start);
ATasks.Calendar cal = project.Get(Prj.Calendar);
double totalHours = cal.GetWorkingHours(start, end).WorkingHours.TotalHours + 8;
mspTask.Set(Tsk.Duration, project.GetDuration(totalHours, ATasks.TimeUnitType.Hour));
mspTask.Set(Tsk.IsManual, false);
mspTask.Set(Tsk.ConstraintType, ConstraintType.AsSoonAsPossible);
ATasks.Util.TaskUtils.Apply(project.RootTask, collector, 0);
}
MemoryStream fs = new MemoryStream();
project.Save(fs, (ATasks.Saving.SaveFileFormat)setting.SaveFileFormat);
Hi Hamid,