Aspose.Tasks for C++
Task.h
1 #pragma once
2 //-----------------------------------------------------------------------
3 // <copyright file="Task.cs" company="Aspose Pty Ltd">
4 // Copyright (c) 2002-2025 Aspose Pty Ltd. All Rights Reserved.
5 // </copyright>
6 //-----------------------------------------------------------------------
7 
8 #include <system/timespan.h>
9 #include <system/iequatable.h>
10 #include <system/date_time.h>
11 
12 #include "aspose.tasks.cpp/Recalculation/TaskPlannerFactory.h"
13 #include "aspose.tasks.cpp/Recalculation/TaskPlanner.h"
14 #include "aspose.tasks.cpp/PropertyContainer.h"
15 #include "aspose.tasks.cpp/IEntityWithTd.h"
16 #include "aspose.tasks.cpp/IEntityWithNotes.h"
17 #include "aspose.tasks.cpp/IEntityWithHyperlink.h"
18 #include "aspose.tasks.cpp/IContainer.h"
19 #include "aspose.tasks.cpp/NullableBool.h"
20 #include "aspose.tasks.cpp/Key.h"
21 #include "aspose.tasks.cpp/IExtendedAttributeParent.h"
22 #include "aspose.tasks.cpp/Enums/TaskKey.h"
23 #include "aspose.tasks.cpp/aspose_tasks_api_defs.h"
24 
25 namespace Aspose
26 {
27 namespace Tasks
28 {
29 class AutoRecalculationState;
30 enum class BaselineType;
31 namespace Calculations
32 {
33 class ActualTimephasedDataUpdater;
34 class ProjectCalculator;
35 class ProjectWorkAndCostCalculator;
36 class RescheduleIncompleteWorkCalculator;
37 class ResourceAssignmentCalculator;
38 class ResourceAssignmentWorkCalculator;
39 class ResourceOverAllocationCalculator;
40 class SummaryTaskCalculator;
41 class TaskByAssignmentCalculator;
42 class TaskCalculator;
43 class TaskConstraintDateCalculator;
44 class TaskCostCalculator;
45 class TaskCriticalUpdater;
46 class TaskDurationFormatCalculator;
47 class TaskEarlyLateDatesCalculator;
48 class TaskProgressCalculator;
49 class TaskSlackCalculator;
50 class TaskStatusCalculator;
51 class TaskStopResumeCalculator;
52 class TaskVarianceCalculator;
53 class TaskWorkCalculator;
54 } // namespace Calculations
55 class Calendar;
56 class CalendarCollection;
57 class CalendarDatesCalculator;
58 namespace Connectivity
59 {
60 class MpdAssignmentMapper;
61 template <typename> class MpdField;
62 class MpdOutlineCodeFieldMapper;
63 class MpdTaskBaselineMapper;
64 class MpdTaskLinkMapper;
65 class MpdTaskMapper;
66 class MspTaskExtendedAttributeReader;
67 class MspTaskMapper;
68 class PmTaskMapper;
69 class PmWbsMapper;
70 class PrimaveraDbReader;
71 } // namespace Connectivity
72 enum class ConstraintType;
73 enum class CostAccrualType;
74 class DatesCalculator;
75 class Duration;
76 enum class EarnedValueMethodType;
77 class EvaluationModeDatesResetter;
78 class EVCalculator;
79 class ExtendedAttributeCollection;
80 namespace Filters
81 {
82 class TaskFirstInChainFilter;
83 class TaskFirstsWithinParentFilter;
84 class TaskLastInChainsFilter;
85 class TaskLastsWithinParentFilter;
86 class TaskSameOutlineLevelDiffParentFilter;
87 } // namespace Filters
88 class FixedDurationEffortDrivenTaskPlanner;
89 class FixedDurationEffortDrivenTaskPlannerAssignmentManager;
90 class FixedDurationTaskPlanner;
91 class FixedDurationTaskPlannerAssignmentManager;
92 class FixedUnitsEffortDrivenTaskPlanner;
93 class FixedUnitsTaskPlanner;
94 class FixedUnitsTaskPlannerAssignmentManager;
95 class FixedWorkTaskPlanner;
96 class FixedWorkTaskPlannerAssignmentManager;
97 namespace IO
98 {
99 namespace Html
100 {
101 class HtmlResourceAssignmentTableReader;
102 class HtmlTaskBaseLineTableReader;
103 class HtmlTaskExtAttributesTableReader;
104 class HtmlTaskTableReader;
105 } // namespace Html
106 namespace Mpx
107 {
108 class MpxReader;
109 class MpxUtils;
110 } // namespace Mpx
111 namespace MSProject
112 {
113 class GanttBarStyleCalculator;
114 class MPP12Reader;
115 class MPP12TaskReader;
116 class Mpp12TaskTreeBuilder;
117 class MPP12TaskWriter;
118 class MPP14As12TaskReader;
119 class MPP14As9TaskReader;
120 class MPP14Reader;
121 class MPP14ResourceAssignmentReader;
122 class MPP14ResourceAssignmentWriter;
123 class MPP14TaskReader;
124 class MPP14TaskWriter;
125 class MPP15ResourceAssignmentReader;
126 class MPP15ResourceAssignmentWriter;
127 class MPP9Reader;
128 class Mpp9TaskTreeBuilder;
129 class MPPGanttBarStyleWriter;
130 class MPPReader;
131 class MPPRecurringInfoReader;
132 class MPPTaskReader;
133 class MppTaskTreeBuilder;
134 class MPPTaskWriter;
135 class TaskFieldsMapper;
136 class TimelineViewWriter;
137 namespace Writers
138 {
139 class MPP14As9TaskWriter;
140 class MPP9TaskWriter;
141 class MppBaselineWriter;
142 } // namespace Writers
143 } // namespace MSProject
144 namespace PrimaveraXml
145 {
146 class P6XmlUtils;
147 class PrimaveraActivityExpenseNodeReader;
148 class PrimaveraActivityNodeReader;
149 class PrimaveraProjectNodeReader;
150 class PrimaveraWBSNodeReader;
151 } // namespace PrimaveraXml
152 namespace Pwa
153 {
154 namespace InternalApi
155 {
156 namespace Mapping
157 {
158 class ExtendedAttributeDefinitionToRawValuesMapper;
159 class ProjectTasksMapper;
160 class ProjectToRawValuesMapper;
161 class TaskBinaryDataPropertyMapper;
162 class TaskDurationToTimeSpanMapper;
163 class TaskIntToDurationMapper;
164 class TaskToRawValuesMapper;
165 } // namespace Mapping
166 } // namespace InternalApi
167 } // namespace Pwa
168 namespace Xer
169 {
170 class XerConstraintUtils;
171 class XerExpensesReader;
172 class XerPrimaveraReader;
173 class XerProjectNormalizer;
174 class XerTaskReader;
175 class XerWbsReader;
176 } // namespace Xer
177 namespace Xml
178 {
179 class ResourceAssignmentNodeWriter;
180 class TaskBaselineNodeReader;
181 class TaskFactory;
182 class TaskLinksNodeReader;
183 class TaskNodeReader;
184 class TaskNodeWriter;
185 class XmlWriter;
186 } // namespace Xml
187 } // namespace IO
188 namespace Leveling
189 {
190 class LevelingAlgorithm;
191 class ResourceLeveler;
192 } // namespace Leveling
193 class LinkedTasksChain;
194 class ManualState;
195 class OutlineCodeCollection;
196 class OutlineNumbersCalculator;
197 class PercentCompleteCalculator;
198 class PrimaveraTaskProperties;
199 class ProjDateAdd;
200 class ProjDateConv;
201 class ProjDateDiff;
202 class ProjDateSub;
203 class ProjDurConv;
204 class ProjDurValue;
205 class Project;
206 class ProjectIntegrityValidator;
207 class ProjectState;
208 class ProjectWorkUpdater;
209 class ReadingState;
210 namespace Recalculation
211 {
212 class TaskSplitCalculator;
213 } // namespace Recalculation
214 class RecurringTaskBuilder;
215 class RecurringTaskInfo;
216 class RecurringTaskParameters;
217 class Resource;
218 class ResourceAssignment;
219 class ResourceAssignmentCollection;
220 namespace RiskAnalysis
221 {
222 class MonteCarloIteration;
223 class RiskItemStatistics;
224 class RndDurationAlgorithm;
225 } // namespace RiskAnalysis
226 namespace Saving
227 {
228 class HtmlTaskBaseLineTable;
229 class HtmlTaskExtendedAttributesTable;
230 class HtmlTaskTable;
231 class MpxSavingUtils;
232 class MpxTaskField;
233 class MpxTaskModel;
234 class MpxWriter;
235 class PrimaveraActivityNodeWriter;
236 class PrimaveraAssignmentNodeWriter;
237 class PrimaveraProjectNodeWriter;
238 class PrimaveraRelationshipNodeWriter;
239 class PrimaveraWBSNodeWriter;
240 class PrimaveraXerUtils;
241 class SSWriter;
242 class TemplateWriter;
243 class XerAssignmentTable;
244 class XerRelationTable;
245 class XerTaskTable;
246 class XerWBSTable;
247 } // namespace Saving
248 namespace Scheduling
249 {
250 class ConstraintSolver;
251 class CriticalPathAlgorithm;
252 class DummyRelationsCollectorBase;
253 class FromFinishScheduler;
254 class FromStartScheduler;
255 class LateFinishCalculator;
256 class LateStartCalculator;
257 class RescheduleAlgorithm;
258 class TopologicalSort;
259 class TopsortCriticalPath;
260 } // namespace Scheduling
261 class SplitPart;
262 class SplitPartCollection;
263 class SummaryTaskTotals;
264 class TaskBaseline;
265 class TaskBaselineCollection;
266 class TaskCollection;
267 class TaskFinishComparer;
268 class TaskIdComparer;
269 class TaskLink;
270 class TaskLinkCollection;
271 class TaskLinkTable;
272 class TaskPlannerAssignmentManager;
273 class TaskPlannerFactory;
274 class TaskStartComparer;
275 enum class TaskStatus;
276 class TaskTreeBuilder;
277 enum class TaskType;
278 class TaskWarningCalculator;
279 class TimephasedDataCollection;
280 class TimephasedDataMaker;
281 enum class TimephasedDataType : int8_t;
282 class TimephasedWorkCostSelector;
283 enum class TimeUnitType : int8_t;
284 namespace Util
285 {
286 class AssignedTasksCollector;
287 class CalculatedExtendedAttributeUtils;
288 class DateTimeInterval;
289 class EnsureExtendedAttribute;
290 class ExtendedAttributeChecker;
291 namespace Fields
292 {
293 class FieldHelperInternal;
294 class FieldToValue;
295 class TaskFieldToValue;
296 } // namespace Fields
297 class PrimaveraSummaryTasksCalculator;
298 class PrimaveraTasksProcessor;
299 class RemoveTask;
300 class TaskIdReEnumerator;
301 class TaskTreeEnumerator;
302 class TaskTreePostOrderEnumerator;
303 class TaskUtils;
304 class Utils;
305 class VisibleTasksCollector;
306 } // namespace Util
307 namespace Validators
308 {
309 class TaskValidator;
310 } // namespace Validators
311 namespace Visualization
312 {
313 template <typename> class ApsBaseChartBuilder;
314 class ApsLinksBuilder;
315 class ApsReportBestPracticesAnalyzerBuilder;
316 class ApsReportBuilder;
317 class ApsReportBurndownBuilder;
318 class ApsReportCashFlowBuilder;
319 class ApsReportLateTasksBuilder;
320 class ApsReportMilestonesBuilder;
321 class ApsReportProjectOverviewBuilder;
322 class ApsReportSlippingTasksBuilder;
323 class ApsReportUpcomingTasksBuilder;
324 class ApsResourceUsageBuilder;
325 class ApsTaskUsageBuilder;
326 class ApsTaskUsagePage;
327 class AssignmentToColumnText;
328 class CollapsedTaskRemover;
329 template <typename> class FieldToColumnText;
330 class GanttPageTaskBarBuilder;
331 class Indicators;
332 class LegendItemsFlowLayoutBuilder;
333 class TaskToColumnText;
334 } // namespace Visualization
335 class WbsCalculator;
336 class WBSCodeDefinition;
337 } // namespace Tasks
338 } // namespace Aspose
339 namespace System
340 {
341 namespace Collections
342 {
343 namespace Generic
344 {
345 template <typename> class IEnumerable;
346 template <typename> class IList;
347 template <typename> class List;
348 } // namespace Generic
349 } // namespace Collections
350 class Decimal;
351 } // namespace System
352 
353 namespace Aspose {
354 
355 namespace Tasks {
356 
357 /// <summary>
358 /// Represents a task in a project.
359 /// </summary>
360 /// <remarks>
361 /// <p>The <b>Task</b> is representing a one atomic chunk of work.</p>
362 /// One can use <b>Task</b> to plan a project by creating tasks and assign appropriate resources onto them.
363 /// Tasks in a project are organized as a rooted hierarchical tree structure, with a root task and subtrees of children tasks.
364 /// <p>To build a tree of tasks one can use a specialized collection <see cref="Aspose::Tasks::TaskCollection"></see> by accessing <see cref="Project::RootTask"></see> property e.g.:</p>
365 /// <code>
366 /// Project project = new Project();
367 ///
368 /// // add new tasks
369 /// Task task1 = project.RootTask.Children.Add(); // a parent task with empty name is added
370 /// Task childTask1 = task1.Children.Add("Child 1");
371 /// childTask1.Set(Tsk.Start, new DateTime(2020, 2, 12, 8, 0, 0))
372 /// childTask1.Set(Tsk.Duration, project.GetDuration(8, TimeUnitType.Hour));
373 /// childTask1.Set(Tsk.Finish, new DateTime(2020, 2, 12, 17, 0, 0));
374 /// Task childTask3 = task1.Children.Add("Child 3");
375 /// childTask3.Set(Tsk.Start, new DateTime(2020, 2, 13, 8, 0, 0))
376 /// childTask3.Set(Tsk.Duration, project.GetDuration(8, TimeUnitType.Hour));
377 /// childTask3.Set(Tsk.Finish, new DateTime(2020, 2, 13, 17, 0, 0));
378 /// Task childTask2 = task1.Children.Add("Child 2", 2); // inserts a task before the childTask3
379 /// childTask2.Set(Tsk.Start, new DateTime(2020, 2, 14, 8, 0, 0))
380 /// childTask2.Set(Tsk.Duration, project.GetDuration(8, TimeUnitType.Hour));
381 /// childTask2.Set(Tsk.Finish, new DateTime(2020, 2, 14, 17, 0, 0));
382 ///
383 /// // save project in the one of available formats
384 /// project.Save("Filled project.xml", SaveFileFormat.MPP);
385 /// </code>
386 /// </remarks>
387 class ASPOSE_TASKS_SHARED_CLASS Task : public Aspose::Tasks::IContainer<Aspose::Tasks::TaskKey>, public System::IEquatable<System::SharedPtr<Aspose::Tasks::Task>>, public Aspose::Tasks::IExtendedAttributeParent, public Aspose::Tasks::IEntityWithTd, public Aspose::Tasks::IEntityWithNotes, public Aspose::Tasks::IEntityWithHyperlink
388 {
389  typedef Task ThisType;
390  typedef Aspose::Tasks::IContainer<Aspose::Tasks::TaskKey> BaseType;
391  typedef System::IEquatable<System::SharedPtr<Aspose::Tasks::Task>> BaseType1;
392  typedef Aspose::Tasks::IExtendedAttributeParent BaseType2;
394  typedef Aspose::Tasks::IEntityWithNotes BaseType4;
395  typedef Aspose::Tasks::IEntityWithHyperlink BaseType5;
396 
397  typedef ::System::BaseTypesInfo<BaseType, BaseType1, BaseType2, BaseType3, BaseType4, BaseType5> ThisTypeBaseTypesInfo;
398  ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
399 
400  friend class Aspose::Tasks::Calculations::ActualTimephasedDataUpdater;
401  friend class Aspose::Tasks::Calculations::RescheduleIncompleteWorkCalculator;
402  friend class Aspose::Tasks::Calculations::TaskStopResumeCalculator;
403  friend class Aspose::Tasks::Calculations::ResourceOverAllocationCalculator;
404  friend class Aspose::Tasks::Calculations::TaskDurationFormatCalculator;
405  friend class Aspose::Tasks::Calculations::TaskEarlyLateDatesCalculator;
406  friend class Aspose::Tasks::Calculations::ProjectCalculator;
407  friend class Aspose::Tasks::Calculations::ProjectWorkAndCostCalculator;
408  friend class Aspose::Tasks::Calculations::ResourceAssignmentCalculator;
409  friend class Aspose::Tasks::Calculations::ResourceAssignmentWorkCalculator;
410  friend class Aspose::Tasks::Calculations::SummaryTaskCalculator;
411  friend class Aspose::Tasks::Calculations::TaskByAssignmentCalculator;
412  friend class Aspose::Tasks::Calculations::TaskCalculator;
413  friend class Aspose::Tasks::Calculations::TaskConstraintDateCalculator;
414  friend class Aspose::Tasks::Calculations::TaskCriticalUpdater;
415  friend class Aspose::Tasks::Calculations::TaskProgressCalculator;
416  friend class Aspose::Tasks::Calculations::TaskCostCalculator;
417  friend class Aspose::Tasks::Calculations::TaskSlackCalculator;
418  friend class Aspose::Tasks::Calculations::TaskVarianceCalculator;
419  friend class Aspose::Tasks::Calculations::TaskStatusCalculator;
420  friend class Aspose::Tasks::Calculations::TaskWorkCalculator;
422  friend class Aspose::Tasks::IO::MSProject::Writers::MppBaselineWriter;
423  friend class Aspose::Tasks::IO::MSProject::GanttBarStyleCalculator;
424  friend class Aspose::Tasks::IO::PrimaveraXml::P6XmlUtils;
425  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraActivityExpenseNodeReader;
426  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraActivityNodeReader;
427  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraProjectNodeReader;
428  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraWBSNodeReader;
429  friend class Aspose::Tasks::IO::Xer::XerExpensesReader;
430  friend class Aspose::Tasks::IO::Xer::XerConstraintUtils;
431  friend class Aspose::Tasks::Leveling::LevelingAlgorithm;
433  friend class Aspose::Tasks::Project;
434  friend class Aspose::Tasks::SummaryTaskTotals;
435  friend class Aspose::Tasks::Resource;
437  friend class Aspose::Tasks::Scheduling::DummyRelationsCollectorBase;
438  friend class Aspose::Tasks::Scheduling::LateFinishCalculator;
439  friend class Aspose::Tasks::Scheduling::LateStartCalculator;
440  friend class Aspose::Tasks::Util::PrimaveraSummaryTasksCalculator;
441  friend class Aspose::Tasks::Util::TaskTreePostOrderEnumerator;
442  friend class Aspose::Tasks::Util::TaskTreeEnumerator;
443  friend class Aspose::Tasks::Filters::TaskSameOutlineLevelDiffParentFilter;
444  friend class Aspose::Tasks::Filters::TaskFirstsWithinParentFilter;
445  friend class Aspose::Tasks::Filters::TaskLastInChainsFilter;
446  friend class Aspose::Tasks::Filters::TaskLastsWithinParentFilter;
447  friend class Aspose::Tasks::Filters::TaskFirstInChainFilter;
448  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::TaskBinaryDataPropertyMapper;
449  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ExtendedAttributeDefinitionToRawValuesMapper;
450  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::TaskToRawValuesMapper;
451  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectToRawValuesMapper;
452  friend class Aspose::Tasks::IO::Xml::TaskFactory;
453  friend class Aspose::Tasks::TaskFinishComparer;
454  friend class Aspose::Tasks::TaskIdComparer;
455  friend class Aspose::Tasks::TaskStartComparer;
456  friend class Aspose::Tasks::EVCalculator;
457  friend class Aspose::Tasks::ProjDateAdd;
458  friend class Aspose::Tasks::ProjDateConv;
459  friend class Aspose::Tasks::ProjDateDiff;
460  friend class Aspose::Tasks::ProjDateSub;
461  friend class Aspose::Tasks::ProjDurConv;
462  friend class Aspose::Tasks::ProjDurValue;
463  friend class Aspose::Tasks::Connectivity::MpdAssignmentMapper;
464  template<typename FT0> friend class Aspose::Tasks::Connectivity::MpdField;
465  friend class Aspose::Tasks::Connectivity::MpdOutlineCodeFieldMapper;
466  friend class Aspose::Tasks::Connectivity::MpdTaskBaselineMapper;
467  friend class Aspose::Tasks::Connectivity::MpdTaskLinkMapper;
468  friend class Aspose::Tasks::Connectivity::MpdTaskMapper;
469  friend class Aspose::Tasks::Connectivity::MspTaskExtendedAttributeReader;
470  friend class Aspose::Tasks::Connectivity::MspTaskMapper;
471  friend class Aspose::Tasks::Connectivity::PmTaskMapper;
472  friend class Aspose::Tasks::Connectivity::PmWbsMapper;
473  friend class Aspose::Tasks::Connectivity::PrimaveraDbReader;
474  friend class Aspose::Tasks::IO::Html::HtmlResourceAssignmentTableReader;
475  friend class Aspose::Tasks::IO::Html::HtmlTaskBaseLineTableReader;
476  friend class Aspose::Tasks::IO::Html::HtmlTaskExtAttributesTableReader;
477  friend class Aspose::Tasks::IO::Html::HtmlTaskTableReader;
478  friend class Aspose::Tasks::Visualization::ApsTaskUsagePage;
479  friend class Aspose::Tasks::Visualization::GanttPageTaskBarBuilder;
480  friend class Aspose::Tasks::Visualization::LegendItemsFlowLayoutBuilder;
481  friend class Aspose::Tasks::IO::MSProject::TaskFieldsMapper;
482  friend class Aspose::Tasks::IO::MSProject::MPP12Reader;
483  friend class Aspose::Tasks::IO::MSProject::MPPReader;
484  friend class Aspose::Tasks::IO::MSProject::MPP12TaskReader;
485  friend class Aspose::Tasks::IO::MSProject::MPPTaskReader;
486  friend class Aspose::Tasks::IO::MSProject::Mpp12TaskTreeBuilder;
487  friend class Aspose::Tasks::IO::MSProject::MppTaskTreeBuilder;
488  friend class Aspose::Tasks::IO::MSProject::MPP14As12TaskReader;
489  friend class Aspose::Tasks::IO::MSProject::MPP14As9TaskReader;
490  friend class Aspose::Tasks::IO::MSProject::MPP14Reader;
491  friend class Aspose::Tasks::IO::MSProject::MPP14ResourceAssignmentReader;
492  friend class Aspose::Tasks::IO::MSProject::MPP14TaskReader;
493  friend class Aspose::Tasks::IO::MSProject::MPP15ResourceAssignmentReader;
494  friend class Aspose::Tasks::IO::MSProject::MPP15ResourceAssignmentWriter;
495  friend class Aspose::Tasks::IO::MSProject::MPP14ResourceAssignmentWriter;
496  friend class Aspose::Tasks::IO::MSProject::MPP14TaskWriter;
497  friend class Aspose::Tasks::IO::MSProject::MPP9Reader;
498  friend class Aspose::Tasks::IO::MSProject::Mpp9TaskTreeBuilder;
499  friend class Aspose::Tasks::IO::MSProject::MPPRecurringInfoReader;
500  friend class Aspose::Tasks::IO::MSProject::MPP12TaskWriter;
501  friend class Aspose::Tasks::IO::MSProject::MPPTaskWriter;
502  friend class Aspose::Tasks::IO::MSProject::Writers::MPP14As9TaskWriter;
503  friend class Aspose::Tasks::IO::MSProject::Writers::MPP9TaskWriter;
504  friend class Aspose::Tasks::IO::MSProject::MPPGanttBarStyleWriter;
505  friend class Aspose::Tasks::IO::MSProject::TimelineViewWriter;
506  friend class Aspose::Tasks::IO::Mpx::MpxReader;
507  friend class Aspose::Tasks::TaskTreeBuilder;
508  friend class Aspose::Tasks::IO::Mpx::MpxUtils;
509  friend class Aspose::Tasks::IO::Xer::XerPrimaveraReader;
510  friend class Aspose::Tasks::IO::Xer::XerProjectNormalizer;
511  friend class Aspose::Tasks::IO::Xer::XerTaskReader;
512  friend class Aspose::Tasks::IO::Xer::XerWbsReader;
513  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectTasksMapper;
514  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::TaskDurationToTimeSpanMapper;
515  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::TaskIntToDurationMapper;
516  friend class Aspose::Tasks::IO::Xml::ResourceAssignmentNodeWriter;
517  friend class Aspose::Tasks::IO::Xml::TaskBaselineNodeReader;
518  friend class Aspose::Tasks::IO::Xml::TaskLinksNodeReader;
519  friend class Aspose::Tasks::IO::Xml::TaskNodeReader;
520  friend class Aspose::Tasks::IO::Xml::TaskNodeWriter;
521  friend class Aspose::Tasks::IO::Xml::XmlWriter;
522  friend class Aspose::Tasks::LinkedTasksChain;
523  friend class Aspose::Tasks::ProjectIntegrityValidator;
524  friend class Aspose::Tasks::AutoRecalculationState;
525  friend class Aspose::Tasks::ProjectState;
526  friend class Aspose::Tasks::CalendarDatesCalculator;
527  friend class Aspose::Tasks::DatesCalculator;
528  friend class Aspose::Tasks::EvaluationModeDatesResetter;
529  friend class Aspose::Tasks::FixedDurationEffortDrivenTaskPlannerAssignmentManager;
530  friend class Aspose::Tasks::TaskPlannerAssignmentManager;
531  friend class Aspose::Tasks::FixedDurationEffortDrivenTaskPlanner;
532  friend class Aspose::Tasks::TaskPlanner;
533  friend class Aspose::Tasks::FixedDurationTaskPlanner;
534  friend class Aspose::Tasks::FixedDurationTaskPlannerAssignmentManager;
535  friend class Aspose::Tasks::FixedUnitsEffortDrivenTaskPlanner;
536  friend class Aspose::Tasks::FixedUnitsTaskPlanner;
537  friend class Aspose::Tasks::FixedUnitsTaskPlannerAssignmentManager;
538  friend class Aspose::Tasks::FixedWorkTaskPlanner;
539  friend class Aspose::Tasks::FixedWorkTaskPlannerAssignmentManager;
540  friend class Aspose::Tasks::ManualState;
541  friend class Aspose::Tasks::OutlineNumbersCalculator;
542  friend class Aspose::Tasks::PercentCompleteCalculator;
543  friend class Aspose::Tasks::ProjectState;
544  friend class Aspose::Tasks::ProjectWorkUpdater;
545  friend class Aspose::Tasks::ReadingState;
546  friend class Aspose::Tasks::Recalculation::TaskSplitCalculator;
547  friend class Aspose::Tasks::TaskWarningCalculator;
548  friend class Aspose::Tasks::WbsCalculator;
549  friend class Aspose::Tasks::RecurringTaskBuilder;
552  friend class Aspose::Tasks::RiskAnalysis::RndDurationAlgorithm;
553  friend class Aspose::Tasks::RiskAnalysis::MonteCarloIteration;
554  friend class Aspose::Tasks::Visualization::ApsReportBuilder;
556  friend class Aspose::Tasks::Saving::SSWriter;
557  friend class Aspose::Tasks::Saving::HtmlTaskBaseLineTable;
558  friend class Aspose::Tasks::Saving::HtmlTaskExtendedAttributesTable;
559  friend class Aspose::Tasks::Saving::HtmlTaskTable;
560  friend class Aspose::Tasks::Saving::MpxSavingUtils;
561  friend class Aspose::Tasks::Saving::MpxTaskField;
562  friend class Aspose::Tasks::Saving::MpxTaskModel;
563  friend class Aspose::Tasks::Saving::MpxWriter;
564  friend class Aspose::Tasks::Saving::PrimaveraXerUtils;
565  friend class Aspose::Tasks::Saving::XerAssignmentTable;
566  friend class Aspose::Tasks::Saving::XerRelationTable;
567  friend class Aspose::Tasks::Saving::XerTaskTable;
568  friend class Aspose::Tasks::Saving::XerWBSTable;
569  friend class Aspose::Tasks::Saving::PrimaveraActivityNodeWriter;
570  friend class Aspose::Tasks::Saving::PrimaveraActivityNodeWriter;
571  friend class Aspose::Tasks::Saving::PrimaveraActivityNodeWriter;
572  friend class Aspose::Tasks::Saving::PrimaveraAssignmentNodeWriter;
573  friend class Aspose::Tasks::Saving::PrimaveraProjectNodeWriter;
574  friend class Aspose::Tasks::Saving::PrimaveraRelationshipNodeWriter;
575  friend class Aspose::Tasks::Saving::PrimaveraWBSNodeWriter;
576  friend class Aspose::Tasks::Saving::TemplateWriter;
577  friend class Aspose::Tasks::Scheduling::ConstraintSolver;
578  friend class Aspose::Tasks::Scheduling::CriticalPathAlgorithm;
579  friend class Aspose::Tasks::Scheduling::TopsortCriticalPath;
580  friend class Aspose::Tasks::Scheduling::FromFinishScheduler;
581  friend class Aspose::Tasks::Scheduling::RescheduleAlgorithm;
582  friend class Aspose::Tasks::Scheduling::FromStartScheduler;
583  friend class Aspose::Tasks::Scheduling::TopologicalSort;
584  friend class Aspose::Tasks::TaskBaseline;
586  friend class Aspose::Tasks::TaskCollection;
587  friend class Aspose::Tasks::TaskLink;
589  friend class Aspose::Tasks::TimephasedDataMaker;
590  friend class Aspose::Tasks::TimephasedWorkCostSelector;
591  friend class Aspose::Tasks::Util::AssignedTasksCollector;
592  friend class Aspose::Tasks::Util::CalculatedExtendedAttributeUtils;
593  friend class Aspose::Tasks::Util::EnsureExtendedAttribute;
594  friend class Aspose::Tasks::Util::ExtendedAttributeChecker;
595  friend class Aspose::Tasks::Util::Fields::FieldHelperInternal;
596  friend class Aspose::Tasks::Util::Fields::FieldToValue;
597  friend class Aspose::Tasks::Util::Fields::TaskFieldToValue;
598  friend class Aspose::Tasks::Util::PrimaveraTasksProcessor;
599  friend class Aspose::Tasks::Util::RemoveTask;
600  friend class Aspose::Tasks::Util::TaskIdReEnumerator;
601  friend class Aspose::Tasks::Util::TaskUtils;
602  friend class Aspose::Tasks::Util::Utils;
603  friend class Aspose::Tasks::Util::VisibleTasksCollector;
604  friend class Aspose::Tasks::Validators::TaskValidator;
605  template<typename FT0> friend class Aspose::Tasks::Visualization::ApsBaseChartBuilder;
606  friend class Aspose::Tasks::Visualization::ApsLinksBuilder;
607  friend class Aspose::Tasks::Visualization::ApsResourceUsageBuilder;
608  friend class Aspose::Tasks::Visualization::ApsTaskUsageBuilder;
609  friend class Aspose::Tasks::Visualization::CollapsedTaskRemover;
610  friend class Aspose::Tasks::Visualization::ApsReportBestPracticesAnalyzerBuilder;
611  friend class Aspose::Tasks::Visualization::ApsReportBurndownBuilder;
612  friend class Aspose::Tasks::Visualization::ApsReportCashFlowBuilder;
613  friend class Aspose::Tasks::Visualization::ApsReportLateTasksBuilder;
614  friend class Aspose::Tasks::Visualization::ApsReportMilestonesBuilder;
615  friend class Aspose::Tasks::Visualization::ApsReportProjectOverviewBuilder;
616  friend class Aspose::Tasks::Visualization::ApsReportSlippingTasksBuilder;
617  friend class Aspose::Tasks::Visualization::ApsReportUpcomingTasksBuilder;
618  friend class Aspose::Tasks::Visualization::AssignmentToColumnText;
619  template<typename FT0> friend class Aspose::Tasks::Visualization::FieldToColumnText;
620  friend class Aspose::Tasks::Visualization::Indicators;
621  friend class Aspose::Tasks::Visualization::TaskToColumnText;
623 
624 private:
625 
626  class DurationPair : public System::Object, public System::Details::BoxableObjectBase
627  {
628  typedef DurationPair ThisType;
629  typedef System::Object BaseType;
630 
631  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
632  RTTI_INFO_DECL();
633 
634  public:
635 
636  System::TimeSpan get_ActualDuration() const;
637  void set_ActualDuration(System::TimeSpan value);
638  System::TimeSpan get_Duration() const;
639  void set_Duration(System::TimeSpan value);
640 
641  DurationPair(const System::SharedPtr<Task>& task);
642  DurationPair(System::TimeSpan actualDuration, System::TimeSpan duration);
643  DurationPair();
644 
645  protected:
646 
647  #ifdef ASPOSE_GET_SHARED_MEMBERS
648  void GetSharedMembers(System::Object::shared_members_type& result) const override;
649  #endif
650 
651 
652  private:
653 
654  System::TimeSpan pr_ActualDuration;
655  System::TimeSpan pr_Duration;
656 
657  };
658 
659 
660 public:
661 
662  /// <summary>
663  /// Gets a <see cref="TaskCollection"></see> object which contains all predecessors of this Task object.
664  /// </summary>
665  /// <returns>Read-only instance of <see cref="TaskCollection"></see> class.</returns>
666  ASPOSE_TASKS_SHARED_API System::SharedPtr<TaskCollection> get_Predecessors();
667  /// <summary>
668  /// Gets a <see cref="TaskCollection"></see> object which contains all successors of this Task object.
669  /// </summary>
670  /// <returns>Read-only instance of <see cref="TaskCollection"></see> class.</returns>
671  ASPOSE_TASKS_SHARED_API System::SharedPtr<TaskCollection> get_Successors();
672  /// <summary>
673  /// Gets a collection of resource assignments for this object.
674  /// </summary>
675  ASPOSE_TASKS_SHARED_API System::SharedPtr<ResourceAssignmentCollection> get_Assignments();
676  /// <summary>
677  /// Gets the parent project of a task.
678  /// </summary>
679  /// <remarks>
680  /// Call Project.UpdateReferences to update these properties.
681  /// </remarks>
682  ASPOSE_TASKS_SHARED_API const System::SharedPtr<Project>& get_ParentProject() const override;
683  /// <summary>
684  /// Gets <see cref="OutlineCodeCollection"></see> object.
685  /// </summary>
686  /// <remarks>
687  /// Two pieces of data are necessary - a pointer to the outline
688  /// code table that is specified by the FieldID, and the value
689  /// that is specified either by the ValueID or ValueGUID pointer to the value list.
690  /// </remarks>
691  ASPOSE_TASKS_SHARED_API const System::SharedPtr<OutlineCodeCollection>& get_OutlineCodes() const;
692  /// <summary>
693  /// Sets <see cref="OutlineCodeCollection"></see> object.
694  /// </summary>
695  /// <remarks>
696  /// Two pieces of data are necessary - a pointer to the outline
697  /// code table that is specified by the FieldID, and the value
698  /// that is specified either by the ValueID or ValueGUID pointer to the value list.
699  /// </remarks>
700  ASPOSE_TASKS_SHARED_API void set_OutlineCodes(const System::SharedPtr<OutlineCodeCollection>& value);
701  /// <summary>
702  /// Gets the parent task of a task.
703  /// </summary>
704  ASPOSE_TASKS_SHARED_API System::SharedPtr<Task> get_ParentTask() const;
705  /// <summary>
706  /// Gets a child task collection of this object.
707  /// TaskCollection object which represents children tasks.
708  /// </summary>
709  ASPOSE_TASKS_SHARED_API const System::SharedPtr<TaskCollection>& get_Children() const;
710  /// <summary>
711  /// Gets a SplitPart collection that represents the portions of a task.
712  /// </summary>
713  ASPOSE_TASKS_SHARED_API System::SharedPtr<SplitPartCollection> get_SplitParts();
714  /// <summary>
715  /// Gets ExtendedAttributeCollection object containing the values of an extended attribute.
716  /// </summary>
717  /// <remarks>
718  /// Two pieces of data are necessary - a pointer back to the extended attribute table
719  /// which is specified either by the unique ID or the Field ID, and the value
720  /// which is specified either with the value, or a pointer back to the value list.
721  /// </remarks>
722  ASPOSE_TASKS_SHARED_API System::SharedPtr<ExtendedAttributeCollection> get_ExtendedAttributes() override;
723  /// <summary>
724  /// Gets a TimephasedDataCollection object of this task.
725  /// The time phased data block associated with a task.
726  /// </summary>
727  /// <remarks>Reading supported for XML format only.</remarks>
728  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimephasedDataCollection> get_TimephasedData();
729  /// <summary>
730  /// Sets a TimephasedDataCollection object of this task.
731  /// The time phased data block associated with a task.
732  /// </summary>
733  /// <remarks>Reading supported for XML format only.</remarks>
734  ASPOSE_TASKS_SHARED_API void set_TimephasedData(const System::SharedPtr<TimephasedDataCollection>& value);
735  /// <summary>
736  /// Gets the collection of baseline values of the task.
737  /// </summary>
738  ASPOSE_TASKS_SHARED_API const System::SharedPtr<TaskBaselineCollection>& get_Baselines() const;
739  /// <summary>
740  /// Sets the collection of baseline values of the task.
741  /// </summary>
742  ASPOSE_TASKS_SHARED_API void set_Baselines(const System::SharedPtr<TaskBaselineCollection>& value);
743  /// <summary>
744  /// Gets the instance of <see cref="RecurringTaskInfo"></see> class for the task which is a recurring task; if the task is not a recurring one then returns null;
745  /// <remarks>The info for the instance of <see cref="RecurringTaskInfo"></see> is present in mpp file format only.</remarks>
746  /// </summary>
747  ASPOSE_TASKS_SHARED_API System::SharedPtr<RecurringTaskInfo> get_RecurringInfo();
748  /// <summary>
749  /// Gets an object containing Primavera-specific properties for a task read from Primavera file.
750  /// </summary>
751  ASPOSE_TASKS_SHARED_API const System::SharedPtr<PrimaveraTaskProperties>& get_PrimaveraProperties() const;
752  /// <summary>
753  /// Gets a value of Uid.
754  /// </summary>
755  ASPOSE_TASKS_SHARED_API int32_t get_Uid() override;
756  /// <summary>
757  /// Sets a value of Uid.
758  /// </summary>
759  ASPOSE_TASKS_SHARED_API void set_Uid(int32_t value);
760  /// <summary>
761  /// Gets a value of Id.
762  /// </summary>
763  ASPOSE_TASKS_SHARED_API int32_t get_Id();
764  /// <summary>
765  /// Sets a value of Id.
766  /// </summary>
767  ASPOSE_TASKS_SHARED_API void set_Id(int32_t value);
768  /// <summary>
769  /// Gets a value of Type.
770  /// </summary>
771  ASPOSE_TASKS_SHARED_API TaskType get_Type();
772  /// <summary>
773  /// Sets a value of Type.
774  /// </summary>
775  ASPOSE_TASKS_SHARED_API void set_Type(TaskType value);
776  /// <summary>
777  /// Gets a value indicating whether IsNull is set or not.
778  /// </summary>
779  ASPOSE_TASKS_SHARED_API NullableBool get_IsNull();
780  /// <summary>
781  /// Sets a value indicating whether IsNull is set or not.
782  /// </summary>
783  ASPOSE_TASKS_SHARED_API void set_IsNull(NullableBool value);
784  /// <summary>
785  /// Gets a value of Created.
786  /// </summary>
787  ASPOSE_TASKS_SHARED_API System::DateTime get_Created();
788  /// <summary>
789  /// Sets a value of Created.
790  /// </summary>
791  ASPOSE_TASKS_SHARED_API void set_Created(System::DateTime value);
792  /// <summary>
793  /// Gets a value of Contact.
794  /// </summary>
795  ASPOSE_TASKS_SHARED_API System::String get_Contact();
796  /// <summary>
797  /// Sets a value of Contact.
798  /// </summary>
799  ASPOSE_TASKS_SHARED_API void set_Contact(const System::String& value);
800  /// <summary>
801  /// Gets a value of WBS.
802  /// </summary>
803  ASPOSE_TASKS_SHARED_API System::String get_WBS();
804  /// <summary>
805  /// Sets a value of WBS.
806  /// </summary>
807  ASPOSE_TASKS_SHARED_API void set_WBS(const System::String& value);
808  /// <summary>
809  /// Gets a value of WBSLevel.
810  /// </summary>
811  ASPOSE_TASKS_SHARED_API System::String get_WBSLevel();
812  /// <summary>
813  /// Sets a value of WBSLevel.
814  /// </summary>
815  ASPOSE_TASKS_SHARED_API void set_WBSLevel(const System::String& value);
816  /// <summary>
817  /// Gets a value of OutlineNumber.
818  /// </summary>
819  ASPOSE_TASKS_SHARED_API System::String get_OutlineNumber();
820  /// <summary>
821  /// Sets a value of OutlineNumber.
822  /// </summary>
823  ASPOSE_TASKS_SHARED_API void set_OutlineNumber(const System::String& value);
824  /// <summary>
825  /// Gets a value of Name.
826  /// </summary>
827  ASPOSE_TASKS_SHARED_API System::String get_Name();
828  /// <summary>
829  /// Sets a value of Name.
830  /// </summary>
831  ASPOSE_TASKS_SHARED_API void set_Name(const System::String& value);
832  /// <summary>
833  /// Gets a value of OutlineLevel.
834  /// </summary>
835  ASPOSE_TASKS_SHARED_API int32_t get_OutlineLevel();
836  /// <summary>
837  /// Sets a value of OutlineLevel.
838  /// </summary>
839  ASPOSE_TASKS_SHARED_API void set_OutlineLevel(int32_t value);
840  /// <summary>
841  /// Gets a value of Priority.
842  /// </summary>
843  ASPOSE_TASKS_SHARED_API int32_t get_Priority();
844  /// <summary>
845  /// Sets a value of Priority.
846  /// </summary>
847  ASPOSE_TASKS_SHARED_API void set_Priority(int32_t value);
848  /// <summary>
849  /// Gets a value of Start.
850  /// </summary>
851  ASPOSE_TASKS_SHARED_API System::DateTime get_Start() override;
852  /// <summary>
853  /// Sets a value of Start.
854  /// </summary>
855  ASPOSE_TASKS_SHARED_API void set_Start(System::DateTime value);
856  /// <summary>
857  /// Gets a value of Finish.
858  /// </summary>
859  ASPOSE_TASKS_SHARED_API System::DateTime get_Finish();
860  /// <summary>
861  /// Sets a value of Finish.
862  /// </summary>
863  ASPOSE_TASKS_SHARED_API void set_Finish(System::DateTime value);
864  /// <summary>
865  /// Gets a value of Duration.
866  /// </summary>
867  ASPOSE_TASKS_SHARED_API Aspose::Tasks::Duration get_Duration();
868  /// <summary>
869  /// Sets a value of Duration.
870  /// </summary>
871  ASPOSE_TASKS_SHARED_API void set_Duration(Aspose::Tasks::Duration value);
872  /// <summary>
873  /// Gets a value of DurationVariance.
874  /// </summary>
875  ASPOSE_TASKS_SHARED_API Aspose::Tasks::Duration get_DurationVariance();
876  /// <summary>
877  /// Sets a value of DurationVariance.
878  /// </summary>
879  ASPOSE_TASKS_SHARED_API void set_DurationVariance(Aspose::Tasks::Duration value);
880  /// <summary>
881  /// Gets a value of DurationFormat.
882  /// </summary>
883  ASPOSE_TASKS_SHARED_API TimeUnitType get_DurationFormat();
884  /// <summary>
885  /// Sets a value of DurationFormat.
886  /// </summary>
887  ASPOSE_TASKS_SHARED_API void set_DurationFormat(TimeUnitType value);
888  /// <summary>
889  /// Gets a value of Work.
890  /// </summary>
891  ASPOSE_TASKS_SHARED_API Aspose::Tasks::Duration get_Work();
892  /// <summary>
893  /// Sets a value of Work.
894  /// </summary>
895  ASPOSE_TASKS_SHARED_API void set_Work(Aspose::Tasks::Duration value);
896  /// <summary>
897  /// Gets a value of Stop.
898  /// </summary>
899  ASPOSE_TASKS_SHARED_API System::DateTime get_Stop();
900  /// <summary>
901  /// Sets a value of Stop.
902  /// </summary>
903  ASPOSE_TASKS_SHARED_API void set_Stop(System::DateTime value);
904  /// <summary>
905  /// Gets a value of Resume.
906  /// </summary>
907  ASPOSE_TASKS_SHARED_API System::DateTime get_Resume();
908  /// <summary>
909  /// Sets a value of Resume.
910  /// </summary>
911  ASPOSE_TASKS_SHARED_API void set_Resume(System::DateTime value);
912  /// <summary>
913  /// Gets a value indicating whether IsResumeValid is set or not.
914  /// </summary>
915  ASPOSE_TASKS_SHARED_API NullableBool get_IsResumeValid();
916  /// <summary>
917  /// Sets a value indicating whether IsResumeValid is set or not.
918  /// </summary>
919  ASPOSE_TASKS_SHARED_API void set_IsResumeValid(NullableBool value);
920  /// <summary>
921  /// Gets a value indicating whether IsEffortDriven is set or not.
922  /// </summary>
923  ASPOSE_TASKS_SHARED_API NullableBool get_IsEffortDriven();
924  /// <summary>
925  /// Sets a value indicating whether IsEffortDriven is set or not.
926  /// </summary>
927  ASPOSE_TASKS_SHARED_API void set_IsEffortDriven(NullableBool value);
928  /// <summary>
929  /// Gets a value indicating whether IsRecurring is set or not.
930  /// </summary>
931  ASPOSE_TASKS_SHARED_API NullableBool get_IsRecurring();
932  /// <summary>
933  /// Sets a value indicating whether IsRecurring is set or not.
934  /// </summary>
935  ASPOSE_TASKS_SHARED_API void set_IsRecurring(NullableBool value);
936  /// <summary>
937  /// Gets a value indicating whether IsSummary is set or not.
938  /// </summary>
939  ASPOSE_TASKS_SHARED_API bool get_IsSummary();
940  /// <summary>
941  /// Sets a value indicating whether IsSummary is set or not.
942  /// </summary>
943  ASPOSE_TASKS_SHARED_API void set_IsSummary(bool value);
944  /// <summary>
945  /// Gets a value indicating whether IsOverallocated is set or not.
946  /// </summary>
947  ASPOSE_TASKS_SHARED_API NullableBool get_IsOverallocated();
948  /// <summary>
949  /// Sets a value indicating whether IsOverallocated is set or not.
950  /// </summary>
951  ASPOSE_TASKS_SHARED_API void set_IsOverallocated(NullableBool value);
952  /// <summary>
953  /// Gets a value indicating whether IsEstimated is set or not.
954  /// </summary>
955  ASPOSE_TASKS_SHARED_API NullableBool get_IsEstimated();
956  /// <summary>
957  /// Sets a value indicating whether IsEstimated is set or not.
958  /// </summary>
959  ASPOSE_TASKS_SHARED_API void set_IsEstimated(NullableBool value);
960  /// <summary>
961  /// Gets a value indicating whether IsMilestone is set or not.
962  /// </summary>
963  ASPOSE_TASKS_SHARED_API NullableBool get_IsMilestone();
964  /// <summary>
965  /// Sets a value indicating whether IsMilestone is set or not.
966  /// </summary>
967  ASPOSE_TASKS_SHARED_API void set_IsMilestone(NullableBool value);
968  /// <summary>
969  /// Gets a value indicating whether IsCritical is set or not.
970  /// </summary>
971  ASPOSE_TASKS_SHARED_API NullableBool get_IsCritical();
972  /// <summary>
973  /// Sets a value indicating whether IsCritical is set or not.
974  /// </summary>
975  ASPOSE_TASKS_SHARED_API void set_IsCritical(NullableBool value);
976  /// <summary>
977  /// Gets a value indicating whether IsSubproject is set or not.
978  /// </summary>
979  ASPOSE_TASKS_SHARED_API bool get_IsSubproject();
980  /// <summary>
981  /// Sets a value indicating whether IsSubproject is set or not.
982  /// </summary>
983  ASPOSE_TASKS_SHARED_API void set_IsSubproject(bool value);
984  /// <summary>
985  /// Gets a value indicating whether IsSubprojectReadOnly is set or not.
986  /// </summary>
987  ASPOSE_TASKS_SHARED_API NullableBool get_IsSubprojectReadOnly();
988  /// <summary>
989  /// Sets a value indicating whether IsSubprojectReadOnly is set or not.
990  /// </summary>
991  ASPOSE_TASKS_SHARED_API void set_IsSubprojectReadOnly(NullableBool value);
992  /// <summary>
993  /// Gets a value indicating whether IsMarked is set or not.
994  /// </summary>
995  ASPOSE_TASKS_SHARED_API bool get_IsMarked();
996  /// <summary>
997  /// Sets a value indicating whether IsMarked is set or not.
998  /// </summary>
999  ASPOSE_TASKS_SHARED_API void set_IsMarked(bool value);
1000  /// <summary>
1001  /// Gets a value indicating whether IgnoreWarnings is set or not.
1002  /// </summary>
1003  ASPOSE_TASKS_SHARED_API bool get_IgnoreWarnings();
1004  /// <summary>
1005  /// Sets a value indicating whether IgnoreWarnings is set or not.
1006  /// </summary>
1007  ASPOSE_TASKS_SHARED_API void set_IgnoreWarnings(bool value);
1008  /// <summary>
1009  /// Gets a value indicating whether IsExternalTask is set or not.
1010  /// </summary>
1011  ASPOSE_TASKS_SHARED_API bool get_IsExternalTask();
1012  /// <summary>
1013  /// Sets a value indicating whether IsExternalTask is set or not.
1014  /// </summary>
1015  ASPOSE_TASKS_SHARED_API void set_IsExternalTask(bool value);
1016  /// <summary>
1017  /// Gets a value of SubprojectName.
1018  /// </summary>
1019  ASPOSE_TASKS_SHARED_API System::String get_SubprojectName();
1020  /// <summary>
1021  /// Sets a value of SubprojectName.
1022  /// </summary>
1023  ASPOSE_TASKS_SHARED_API void set_SubprojectName(const System::String& value);
1024  /// <summary>
1025  /// Gets a value of ExternalTaskProject.
1026  /// </summary>
1027  ASPOSE_TASKS_SHARED_API System::String get_ExternalTaskProject();
1028  /// <summary>
1029  /// Sets a value of ExternalTaskProject.
1030  /// </summary>
1031  ASPOSE_TASKS_SHARED_API void set_ExternalTaskProject(const System::String& value);
1032  /// <summary>
1033  /// Gets a value of ExternalId.
1034  /// </summary>
1035  ASPOSE_TASKS_SHARED_API int32_t get_ExternalId();
1036  /// <summary>
1037  /// Sets a value of ExternalId.
1038  /// </summary>
1039  ASPOSE_TASKS_SHARED_API void set_ExternalId(int32_t value);
1040  /// <summary>
1041  /// Gets or set the external task's Unique identifier when the task is external.
1042  /// </summary>
1043  ASPOSE_TASKS_SHARED_API int32_t get_ExternalUid();
1044  /// <summary>
1045  /// Gets or set the external task's Unique identifier when the task is external.
1046  /// </summary>
1047  ASPOSE_TASKS_SHARED_API void set_ExternalUid(int32_t value);
1048  /// <summary>
1049  /// Gets a value of EarlyStart.
1050  /// </summary>
1051  ASPOSE_TASKS_SHARED_API System::DateTime get_EarlyStart();
1052  /// <summary>
1053  /// Sets a value of EarlyStart.
1054  /// </summary>
1055  ASPOSE_TASKS_SHARED_API void set_EarlyStart(System::DateTime value);
1056  /// <summary>
1057  /// Gets a value of EarlyFinish.
1058  /// </summary>
1059  ASPOSE_TASKS_SHARED_API System::DateTime get_EarlyFinish();
1060  /// <summary>
1061  /// Sets a value of EarlyFinish.
1062  /// </summary>
1063  ASPOSE_TASKS_SHARED_API void set_EarlyFinish(System::DateTime value);
1064  /// <summary>
1065  /// Gets a value of LateStart.
1066  /// </summary>
1067  ASPOSE_TASKS_SHARED_API System::DateTime get_LateStart();
1068  /// <summary>
1069  /// Sets a value of LateStart.
1070  /// </summary>
1071  ASPOSE_TASKS_SHARED_API void set_LateStart(System::DateTime value);
1072  /// <summary>
1073  /// Gets a value of LateFinish.
1074  /// </summary>
1075  ASPOSE_TASKS_SHARED_API System::DateTime get_LateFinish();
1076  /// <summary>
1077  /// Sets a value of LateFinish.
1078  /// </summary>
1079  ASPOSE_TASKS_SHARED_API void set_LateFinish(System::DateTime value);
1080  /// <summary>
1081  /// Gets a value of StartVariance.
1082  /// </summary>
1083  ASPOSE_TASKS_SHARED_API Aspose::Tasks::Duration get_StartVariance();
1084  /// <summary>
1085  /// Sets a value of StartVariance.
1086  /// </summary>
1087  ASPOSE_TASKS_SHARED_API void set_StartVariance(Aspose::Tasks::Duration value);
1088  /// <summary>
1089  /// Gets a value of FinishVariance.
1090  /// </summary>
1091  ASPOSE_TASKS_SHARED_API Aspose::Tasks::Duration get_FinishVariance();
1092  /// <summary>
1093  /// Sets a value of FinishVariance.
1094  /// </summary>
1095  ASPOSE_TASKS_SHARED_API void set_FinishVariance(Aspose::Tasks::Duration value);
1096  /// <summary>
1097  /// Gets a value of WorkVariance.
1098  /// </summary>
1099  ASPOSE_TASKS_SHARED_API Aspose::Tasks::Duration get_WorkVariance();
1100  /// <summary>
1101  /// Sets a value of WorkVariance.
1102  /// </summary>
1103  ASPOSE_TASKS_SHARED_API void set_WorkVariance(Aspose::Tasks::Duration value);
1104  /// <summary>
1105  /// Gets a value of CostVariance.
1106  /// </summary>
1107  ASPOSE_TASKS_SHARED_API double get_CostVariance();
1108  /// <summary>
1109  /// Sets a value of CostVariance.
1110  /// </summary>
1111  ASPOSE_TASKS_SHARED_API void set_CostVariance(double value);
1112  /// <summary>
1113  /// Gets a value of StartSlack.
1114  /// </summary>
1115  ASPOSE_TASKS_SHARED_API System::TimeSpan get_StartSlack();
1116  /// <summary>
1117  /// Sets a value of StartSlack.
1118  /// </summary>
1119  ASPOSE_TASKS_SHARED_API void set_StartSlack(System::TimeSpan value);
1120  /// <summary>
1121  /// Gets a value of FinishSlack.
1122  /// </summary>
1123  ASPOSE_TASKS_SHARED_API System::TimeSpan get_FinishSlack();
1124  /// <summary>
1125  /// Sets a value of FinishSlack.
1126  /// </summary>
1127  ASPOSE_TASKS_SHARED_API void set_FinishSlack(System::TimeSpan value);
1128  /// <summary>
1129  /// Gets a value of FreeSlack.
1130  /// </summary>
1131  ASPOSE_TASKS_SHARED_API System::TimeSpan get_FreeSlack();
1132  /// <summary>
1133  /// Sets a value of FreeSlack.
1134  /// </summary>
1135  ASPOSE_TASKS_SHARED_API void set_FreeSlack(System::TimeSpan value);
1136  /// <summary>
1137  /// Gets a value of TotalSlack.
1138  /// </summary>
1139  ASPOSE_TASKS_SHARED_API System::TimeSpan get_TotalSlack();
1140  /// <summary>
1141  /// Sets a value of TotalSlack.
1142  /// </summary>
1143  ASPOSE_TASKS_SHARED_API void set_TotalSlack(System::TimeSpan value);
1144  /// <summary>
1145  /// Gets a value of FixedCost.
1146  /// </summary>
1147  ASPOSE_TASKS_SHARED_API double get_FixedCost();
1148  /// <summary>
1149  /// Sets a value of FixedCost.
1150  /// </summary>
1151  ASPOSE_TASKS_SHARED_API void set_FixedCost(double value);
1152  /// <summary>
1153  /// Gets a value of FixedCostAccrual.
1154  /// </summary>
1155  ASPOSE_TASKS_SHARED_API CostAccrualType get_FixedCostAccrual();
1156  /// <summary>
1157  /// Sets a value of FixedCostAccrual.
1158  /// </summary>
1159  ASPOSE_TASKS_SHARED_API void set_FixedCostAccrual(CostAccrualType value);
1160  /// <summary>
1161  /// Gets a value of PercentComplete.
1162  /// </summary>
1163  ASPOSE_TASKS_SHARED_API int32_t get_PercentComplete();
1164  /// <summary>
1165  /// Sets a value of PercentComplete.
1166  /// </summary>
1167  ASPOSE_TASKS_SHARED_API void set_PercentComplete(int32_t value);
1168  /// <summary>
1169  /// Gets a value of PercentWorkComplete.
1170  /// </summary>
1171  ASPOSE_TASKS_SHARED_API int32_t get_PercentWorkComplete();
1172  /// <summary>
1173  /// Sets a value of PercentWorkComplete.
1174  /// </summary>
1175  ASPOSE_TASKS_SHARED_API void set_PercentWorkComplete(int32_t value);
1176  /// <summary>
1177  /// Gets a value of Cost.
1178  /// </summary>
1179  ASPOSE_TASKS_SHARED_API System::Decimal get_Cost();
1180  /// <summary>
1181  /// Sets a value of Cost.
1182  /// </summary>
1183  ASPOSE_TASKS_SHARED_API void set_Cost(System::Decimal value);
1184  /// <summary>
1185  /// Gets a value of OvertimeCost.
1186  /// </summary>
1187  ASPOSE_TASKS_SHARED_API System::Decimal get_OvertimeCost();
1188  /// <summary>
1189  /// Sets a value of OvertimeCost.
1190  /// </summary>
1191  ASPOSE_TASKS_SHARED_API void set_OvertimeCost(System::Decimal value);
1192  /// <summary>
1193  /// Gets a value of ActualStart.
1194  /// </summary>
1195  ASPOSE_TASKS_SHARED_API System::DateTime get_ActualStart();
1196  /// <summary>
1197  /// Sets a value of ActualStart.
1198  /// </summary>
1199  ASPOSE_TASKS_SHARED_API void set_ActualStart(System::DateTime value);
1200  /// <summary>
1201  /// Gets a value of ActualFinish.
1202  /// </summary>
1203  ASPOSE_TASKS_SHARED_API System::DateTime get_ActualFinish();
1204  /// <summary>
1205  /// Sets a value of ActualFinish.
1206  /// </summary>
1207  ASPOSE_TASKS_SHARED_API void set_ActualFinish(System::DateTime value);
1208  /// <summary>
1209  /// Gets a value of ActualDuration.
1210  /// </summary>
1211  ASPOSE_TASKS_SHARED_API Aspose::Tasks::Duration get_ActualDuration();
1212  /// <summary>
1213  /// Sets a value of ActualDuration.
1214  /// </summary>
1215  ASPOSE_TASKS_SHARED_API void set_ActualDuration(Aspose::Tasks::Duration value);
1216  /// <summary>
1217  /// Gets a value of ActualCost.
1218  /// </summary>
1219  ASPOSE_TASKS_SHARED_API System::Decimal get_ActualCost();
1220  /// <summary>
1221  /// Sets a value of ActualCost.
1222  /// </summary>
1223  ASPOSE_TASKS_SHARED_API void set_ActualCost(System::Decimal value);
1224  /// <summary>
1225  /// Gets a value of ActualOvertimeCost.
1226  /// </summary>
1227  ASPOSE_TASKS_SHARED_API System::Decimal get_ActualOvertimeCost();
1228  /// <summary>
1229  /// Sets a value of ActualOvertimeCost.
1230  /// </summary>
1231  ASPOSE_TASKS_SHARED_API void set_ActualOvertimeCost(System::Decimal value);
1232  /// <summary>
1233  /// Gets a value of ActualWork.
1234  /// </summary>
1235  ASPOSE_TASKS_SHARED_API Aspose::Tasks::Duration get_ActualWork();
1236  /// <summary>
1237  /// Sets a value of ActualWork.
1238  /// </summary>
1239  ASPOSE_TASKS_SHARED_API void set_ActualWork(Aspose::Tasks::Duration value);
1240  /// <summary>
1241  /// Gets a value of ActualOvertimeWork.
1242  /// </summary>
1243  ASPOSE_TASKS_SHARED_API Aspose::Tasks::Duration get_ActualOvertimeWork();
1244  /// <summary>
1245  /// Sets a value of ActualOvertimeWork.
1246  /// </summary>
1247  ASPOSE_TASKS_SHARED_API void set_ActualOvertimeWork(Aspose::Tasks::Duration value);
1248  /// <summary>
1249  /// Gets a value of RegularWork.
1250  /// </summary>
1251  ASPOSE_TASKS_SHARED_API Aspose::Tasks::Duration get_RegularWork();
1252  /// <summary>
1253  /// Sets a value of RegularWork.
1254  /// </summary>
1255  ASPOSE_TASKS_SHARED_API void set_RegularWork(Aspose::Tasks::Duration value);
1256  /// <summary>
1257  /// Gets a value of OvertimeWork.
1258  /// </summary>
1259  ASPOSE_TASKS_SHARED_API Aspose::Tasks::Duration get_OvertimeWork();
1260  /// <summary>
1261  /// Sets a value of OvertimeWork.
1262  /// </summary>
1263  ASPOSE_TASKS_SHARED_API void set_OvertimeWork(Aspose::Tasks::Duration value);
1264  /// <summary>
1265  /// Gets a value of RemainingDuration.
1266  /// </summary>
1267  ASPOSE_TASKS_SHARED_API Aspose::Tasks::Duration get_RemainingDuration();
1268  /// <summary>
1269  /// Sets a value of RemainingDuration.
1270  /// </summary>
1271  ASPOSE_TASKS_SHARED_API void set_RemainingDuration(Aspose::Tasks::Duration value);
1272  /// <summary>
1273  /// Gets a value of RemainingCost.
1274  /// </summary>
1275  ASPOSE_TASKS_SHARED_API System::Decimal get_RemainingCost();
1276  /// <summary>
1277  /// Sets a value of RemainingCost.
1278  /// </summary>
1279  ASPOSE_TASKS_SHARED_API void set_RemainingCost(System::Decimal value);
1280  /// <summary>
1281  /// Gets a value of RemainingWork.
1282  /// </summary>
1283  ASPOSE_TASKS_SHARED_API Aspose::Tasks::Duration get_RemainingWork();
1284  /// <summary>
1285  /// Sets a value of RemainingWork.
1286  /// </summary>
1287  ASPOSE_TASKS_SHARED_API void set_RemainingWork(Aspose::Tasks::Duration value);
1288  /// <summary>
1289  /// Gets a value of RemainingOvertimeWork.
1290  /// </summary>
1291  ASPOSE_TASKS_SHARED_API Aspose::Tasks::Duration get_RemainingOvertimeWork();
1292  /// <summary>
1293  /// Sets a value of RemainingOvertimeWork.
1294  /// </summary>
1295  ASPOSE_TASKS_SHARED_API void set_RemainingOvertimeWork(Aspose::Tasks::Duration value);
1296  /// <summary>
1297  /// Gets a value of RemainingOvertimeCost.
1298  /// </summary>
1299  ASPOSE_TASKS_SHARED_API System::Decimal get_RemainingOvertimeCost();
1300  /// <summary>
1301  /// Sets a value of RemainingOvertimeCost.
1302  /// </summary>
1303  ASPOSE_TASKS_SHARED_API void set_RemainingOvertimeCost(System::Decimal value);
1304  /// <summary>
1305  /// Gets a value of ACWP.
1306  /// </summary>
1307  ASPOSE_TASKS_SHARED_API double get_ACWP();
1308  /// <summary>
1309  /// Sets a value of ACWP.
1310  /// </summary>
1311  ASPOSE_TASKS_SHARED_API void set_ACWP(double value);
1312  /// <summary>
1313  /// Gets a value of CV.
1314  /// </summary>
1315  ASPOSE_TASKS_SHARED_API double get_CV();
1316  /// <summary>
1317  /// Sets a value of CV.
1318  /// </summary>
1319  ASPOSE_TASKS_SHARED_API void set_CV(double value);
1320  /// <summary>
1321  /// Gets a value of ConstraintType.
1322  /// </summary>
1323  ASPOSE_TASKS_SHARED_API Aspose::Tasks::ConstraintType get_ConstraintType();
1324  /// <summary>
1325  /// Sets a value of ConstraintType.
1326  /// </summary>
1327  ASPOSE_TASKS_SHARED_API void set_ConstraintType(Aspose::Tasks::ConstraintType value);
1328  /// <summary>
1329  /// Gets a value of Calendar.
1330  /// </summary>
1331  ASPOSE_TASKS_SHARED_API System::SharedPtr<Aspose::Tasks::Calendar> get_Calendar();
1332  /// <summary>
1333  /// Sets a value of Calendar.
1334  /// </summary>
1335  ASPOSE_TASKS_SHARED_API void set_Calendar(const System::SharedPtr<Aspose::Tasks::Calendar>& value);
1336  /// <summary>
1337  /// Gets a value of ConstraintDate.
1338  /// </summary>
1339  ASPOSE_TASKS_SHARED_API System::DateTime get_ConstraintDate();
1340  /// <summary>
1341  /// Sets a value of ConstraintDate.
1342  /// </summary>
1343  ASPOSE_TASKS_SHARED_API void set_ConstraintDate(System::DateTime value);
1344  /// <summary>
1345  /// Gets a value of Deadline.
1346  /// </summary>
1347  ASPOSE_TASKS_SHARED_API System::DateTime get_Deadline();
1348  /// <summary>
1349  /// Sets a value of Deadline.
1350  /// </summary>
1351  ASPOSE_TASKS_SHARED_API void set_Deadline(System::DateTime value);
1352  /// <summary>
1353  /// Gets a value indicating whether LevelAssignments is set or not.
1354  /// </summary>
1355  ASPOSE_TASKS_SHARED_API NullableBool get_LevelAssignments();
1356  /// <summary>
1357  /// Sets a value indicating whether LevelAssignments is set or not.
1358  /// </summary>
1359  ASPOSE_TASKS_SHARED_API void set_LevelAssignments(NullableBool value);
1360  /// <summary>
1361  /// Gets a value indicating whether LevelingCanSplit is set or not.
1362  /// </summary>
1363  ASPOSE_TASKS_SHARED_API NullableBool get_LevelingCanSplit();
1364  /// <summary>
1365  /// Sets a value indicating whether LevelingCanSplit is set or not.
1366  /// </summary>
1367  ASPOSE_TASKS_SHARED_API void set_LevelingCanSplit(NullableBool value);
1368  /// <summary>
1369  /// Gets a value of LevelingDelay.
1370  /// </summary>
1371  ASPOSE_TASKS_SHARED_API Aspose::Tasks::Duration get_LevelingDelay();
1372  /// <summary>
1373  /// Sets a value of LevelingDelay.
1374  /// </summary>
1375  ASPOSE_TASKS_SHARED_API void set_LevelingDelay(Aspose::Tasks::Duration value);
1376  /// <summary>
1377  /// Gets a value of PreleveledStart.
1378  /// </summary>
1379  ASPOSE_TASKS_SHARED_API System::DateTime get_PreleveledStart();
1380  /// <summary>
1381  /// Sets a value of PreleveledStart.
1382  /// </summary>
1383  ASPOSE_TASKS_SHARED_API void set_PreleveledStart(System::DateTime value);
1384  /// <summary>
1385  /// Gets a value of PreleveledFinish.
1386  /// </summary>
1387  ASPOSE_TASKS_SHARED_API System::DateTime get_PreleveledFinish();
1388  /// <summary>
1389  /// Sets a value of PreleveledFinish.
1390  /// </summary>
1391  ASPOSE_TASKS_SHARED_API void set_PreleveledFinish(System::DateTime value);
1392  /// <summary>
1393  /// Gets the title or explanatory text for a hyperlink associated with a task.
1394  /// </summary>
1395  ASPOSE_TASKS_SHARED_API System::String get_Hyperlink() override;
1396  /// <summary>
1397  /// Sets the title or explanatory text for a hyperlink associated with a task.
1398  /// </summary>
1399  ASPOSE_TASKS_SHARED_API void set_Hyperlink(System::String value) override;
1400  /// <summary>
1401  /// Gets the address for a hyperlink associated with a task.
1402  /// </summary>
1403  /// <remarks>The full address (Hyperlink Href in Microsoft Project) of the hyperlink is a concatenation of HyperlinkAddress and HyperlinkSubAddress.</remarks>
1404  ASPOSE_TASKS_SHARED_API System::String get_HyperlinkAddress() override;
1405  /// <summary>
1406  /// Sets the address for a hyperlink associated with a task.
1407  /// </summary>
1408  /// <remarks>The full address (Hyperlink Href in Microsoft Project) of the hyperlink is a concatenation of HyperlinkAddress and HyperlinkSubAddress.</remarks>
1409  ASPOSE_TASKS_SHARED_API void set_HyperlinkAddress(System::String value) override;
1410  /// <summary>
1411  /// Gets the specific location in a document in a hyperlink associated with a task.
1412  /// </summary>
1413  /// <remarks>The full address (Hyperlink Href in Microsoft Project) of the hyperlink is a concatenation of HyperlinkAddress and HyperlinkSubAddress.</remarks>
1414  ASPOSE_TASKS_SHARED_API System::String get_HyperlinkSubAddress() override;
1415  /// <summary>
1416  /// Sets the specific location in a document in a hyperlink associated with a task.
1417  /// </summary>
1418  /// <remarks>The full address (Hyperlink Href in Microsoft Project) of the hyperlink is a concatenation of HyperlinkAddress and HyperlinkSubAddress.</remarks>
1419  ASPOSE_TASKS_SHARED_API void set_HyperlinkSubAddress(System::String value) override;
1420  /// <summary>
1421  /// Gets a value indicating whether IgnoreResourceCalendar is set or not.
1422  /// </summary>
1423  ASPOSE_TASKS_SHARED_API NullableBool get_IgnoreResourceCalendar();
1424  /// <summary>
1425  /// Sets a value indicating whether IgnoreResourceCalendar is set or not.
1426  /// </summary>
1427  ASPOSE_TASKS_SHARED_API void set_IgnoreResourceCalendar(NullableBool value);
1428  /// <summary>
1429  /// Gets a value indicating whether HideBar is set or not.
1430  /// </summary>
1431  ASPOSE_TASKS_SHARED_API NullableBool get_HideBar();
1432  /// <summary>
1433  /// Sets a value indicating whether HideBar is set or not.
1434  /// </summary>
1435  ASPOSE_TASKS_SHARED_API void set_HideBar(NullableBool value);
1436  /// <summary>
1437  /// Gets a value indicating whether IsRollup is set or not.
1438  /// </summary>
1439  ASPOSE_TASKS_SHARED_API NullableBool get_IsRollup();
1440  /// <summary>
1441  /// Sets a value indicating whether IsRollup is set or not.
1442  /// </summary>
1443  ASPOSE_TASKS_SHARED_API void set_IsRollup(NullableBool value);
1444  /// <summary>
1445  /// Gets a value of BCWS.
1446  /// </summary>
1447  ASPOSE_TASKS_SHARED_API double get_BCWS();
1448  /// <summary>
1449  /// Sets a value of BCWS.
1450  /// </summary>
1451  ASPOSE_TASKS_SHARED_API void set_BCWS(double value);
1452  /// <summary>
1453  /// Gets a value of BCWP.
1454  /// </summary>
1455  ASPOSE_TASKS_SHARED_API double get_BCWP();
1456  /// <summary>
1457  /// Sets a value of BCWP.
1458  /// </summary>
1459  ASPOSE_TASKS_SHARED_API void set_BCWP(double value);
1460  /// <summary>
1461  /// Gets a value of PhysicalPercentComplete.
1462  /// </summary>
1463  ASPOSE_TASKS_SHARED_API int32_t get_PhysicalPercentComplete();
1464  /// <summary>
1465  /// Sets a value of PhysicalPercentComplete.
1466  /// </summary>
1467  ASPOSE_TASKS_SHARED_API void set_PhysicalPercentComplete(int32_t value);
1468  /// <summary>
1469  /// Gets a value of EarnedValueMethod.
1470  /// </summary>
1471  ASPOSE_TASKS_SHARED_API EarnedValueMethodType get_EarnedValueMethod();
1472  /// <summary>
1473  /// Sets a value of EarnedValueMethod.
1474  /// </summary>
1475  ASPOSE_TASKS_SHARED_API void set_EarnedValueMethod(EarnedValueMethodType value);
1476  /// <summary>
1477  /// Gets a value of ActualWorkProtected.
1478  /// </summary>
1479  ASPOSE_TASKS_SHARED_API Aspose::Tasks::Duration get_ActualWorkProtected();
1480  /// <summary>
1481  /// Sets a value of ActualWorkProtected.
1482  /// </summary>
1483  ASPOSE_TASKS_SHARED_API void set_ActualWorkProtected(Aspose::Tasks::Duration value);
1484  /// <summary>
1485  /// Gets a value of ActualOvertimeWorkProtected.
1486  /// </summary>
1487  ASPOSE_TASKS_SHARED_API Aspose::Tasks::Duration get_ActualOvertimeWorkProtected();
1488  /// <summary>
1489  /// Sets a value of ActualOvertimeWorkProtected.
1490  /// </summary>
1491  ASPOSE_TASKS_SHARED_API void set_ActualOvertimeWorkProtected(Aspose::Tasks::Duration value);
1492  /// <summary>
1493  /// Gets a value indicating whether IsPublished is set or not.
1494  /// </summary>
1495  ASPOSE_TASKS_SHARED_API NullableBool get_IsPublished();
1496  /// <summary>
1497  /// Sets a value indicating whether IsPublished is set or not.
1498  /// </summary>
1499  ASPOSE_TASKS_SHARED_API void set_IsPublished(NullableBool value);
1500  /// <summary>
1501  /// Gets task status.
1502  /// </summary>
1503  ASPOSE_TASKS_SHARED_API TaskStatus get_Status();
1504  /// <summary>
1505  /// Gets a value of StatusManager.
1506  /// </summary>
1507  ASPOSE_TASKS_SHARED_API System::String get_StatusManager();
1508  /// <summary>
1509  /// Sets a value of StatusManager.
1510  /// </summary>
1511  ASPOSE_TASKS_SHARED_API void set_StatusManager(const System::String& value);
1512  /// <summary>
1513  /// Gets a value of CommitmentStart.
1514  /// </summary>
1515  ASPOSE_TASKS_SHARED_API System::DateTime get_CommitmentStart();
1516  /// <summary>
1517  /// Sets a value of CommitmentStart.
1518  /// </summary>
1519  ASPOSE_TASKS_SHARED_API void set_CommitmentStart(System::DateTime value);
1520  /// <summary>
1521  /// Gets a value of CommitmentFinish.
1522  /// </summary>
1523  ASPOSE_TASKS_SHARED_API System::DateTime get_CommitmentFinish();
1524  /// <summary>
1525  /// Sets a value of CommitmentFinish.
1526  /// </summary>
1527  ASPOSE_TASKS_SHARED_API void set_CommitmentFinish(System::DateTime value);
1528  /// <summary>
1529  /// Gets a value of CommitmentType.
1530  /// </summary>
1531  ASPOSE_TASKS_SHARED_API int32_t get_CommitmentType();
1532  /// <summary>
1533  /// Sets a value of CommitmentType.
1534  /// </summary>
1535  ASPOSE_TASKS_SHARED_API void set_CommitmentType(int32_t value);
1536  /// <summary>
1537  /// Gets a value indicating whether IsManual is set or not.
1538  /// </summary>
1539  ASPOSE_TASKS_SHARED_API NullableBool get_IsManual();
1540  /// <summary>
1541  /// Sets a value indicating whether IsManual is set or not.
1542  /// </summary>
1543  ASPOSE_TASKS_SHARED_API void set_IsManual(NullableBool value);
1544  /// <summary>
1545  /// Gets a value indicating whether IsExpanded is set or not.
1546  /// </summary>
1547  ASPOSE_TASKS_SHARED_API NullableBool get_IsExpanded();
1548  /// <summary>
1549  /// Sets a value indicating whether IsExpanded is set or not.
1550  /// </summary>
1551  ASPOSE_TASKS_SHARED_API void set_IsExpanded(NullableBool value);
1552  /// <summary>
1553  /// Gets a value of Guid.
1554  /// </summary>
1555  ASPOSE_TASKS_SHARED_API System::String get_Guid();
1556  /// <summary>
1557  /// Sets a value of Guid.
1558  /// </summary>
1559  ASPOSE_TASKS_SHARED_API void set_Guid(const System::String& value);
1560  /// <summary>
1561  /// Gets a value of NotesText.
1562  /// </summary>
1563  ASPOSE_TASKS_SHARED_API System::String get_NotesText() override;
1564  /// <summary>
1565  /// Sets a value of NotesText.
1566  /// </summary>
1567  ASPOSE_TASKS_SHARED_API void set_NotesText(System::String value) override;
1568  /// <summary>
1569  /// Gets a value of NotesRTF.
1570  /// </summary>
1571  ASPOSE_TASKS_SHARED_API System::String get_NotesRTF() override;
1572  /// <summary>
1573  /// Sets a value of NotesRTF.
1574  /// </summary>
1575  ASPOSE_TASKS_SHARED_API void set_NotesRTF(System::String value) override;
1576  /// <summary>
1577  /// Gets a value of ManualStart.
1578  /// </summary>
1579  ASPOSE_TASKS_SHARED_API System::DateTime get_ManualStart();
1580  /// <summary>
1581  /// Sets a value of ManualStart.
1582  /// </summary>
1583  ASPOSE_TASKS_SHARED_API void set_ManualStart(System::DateTime value);
1584  /// <summary>
1585  /// Gets a value of ManualFinish.
1586  /// </summary>
1587  ASPOSE_TASKS_SHARED_API System::DateTime get_ManualFinish();
1588  /// <summary>
1589  /// Sets a value of ManualFinish.
1590  /// </summary>
1591  ASPOSE_TASKS_SHARED_API void set_ManualFinish(System::DateTime value);
1592  /// <summary>
1593  /// Gets a value of ManualDuration.
1594  /// </summary>
1595  ASPOSE_TASKS_SHARED_API Aspose::Tasks::Duration get_ManualDuration();
1596  /// <summary>
1597  /// Sets a value of ManualDuration.
1598  /// </summary>
1599  ASPOSE_TASKS_SHARED_API void set_ManualDuration(Aspose::Tasks::Duration value);
1600  /// <summary>
1601  /// Gets a value of BudgetWork.
1602  /// </summary>
1603  ASPOSE_TASKS_SHARED_API Aspose::Tasks::Duration get_BudgetWork();
1604  /// <summary>
1605  /// Sets a value of BudgetWork.
1606  /// </summary>
1607  ASPOSE_TASKS_SHARED_API void set_BudgetWork(Aspose::Tasks::Duration value);
1608  /// <summary>
1609  /// Gets a value of BudgetCost.
1610  /// </summary>
1611  ASPOSE_TASKS_SHARED_API System::Decimal get_BudgetCost();
1612  /// <summary>
1613  /// Sets a value of BudgetCost.
1614  /// </summary>
1615  ASPOSE_TASKS_SHARED_API void set_BudgetCost(System::Decimal value);
1616  /// <summary>
1617  /// Gets a value indicating whether DisplayAsSummary is set or not.
1618  /// </summary>
1619  ASPOSE_TASKS_SHARED_API NullableBool get_DisplayAsSummary();
1620  /// <summary>
1621  /// Sets a value indicating whether DisplayAsSummary is set or not.
1622  /// </summary>
1623  ASPOSE_TASKS_SHARED_API void set_DisplayAsSummary(NullableBool value);
1624  /// <summary>
1625  /// Gets a value indicating whether IsActive is set or not.
1626  /// </summary>
1627  ASPOSE_TASKS_SHARED_API NullableBool get_IsActive();
1628  /// <summary>
1629  /// Sets a value indicating whether IsActive is set or not.
1630  /// </summary>
1631  ASPOSE_TASKS_SHARED_API void set_IsActive(NullableBool value);
1632  /// <summary>
1633  /// Gets a value of StartText.
1634  /// </summary>
1635  ASPOSE_TASKS_SHARED_API System::String get_StartText();
1636  /// <summary>
1637  /// Sets a value of StartText.
1638  /// </summary>
1639  ASPOSE_TASKS_SHARED_API void set_StartText(const System::String& value);
1640  /// <summary>
1641  /// Gets a value of DurationText.
1642  /// </summary>
1643  ASPOSE_TASKS_SHARED_API System::String get_DurationText();
1644  /// <summary>
1645  /// Sets a value of DurationText.
1646  /// </summary>
1647  ASPOSE_TASKS_SHARED_API void set_DurationText(const System::String& value);
1648  /// <summary>
1649  /// Gets a value of FinishText.
1650  /// </summary>
1651  ASPOSE_TASKS_SHARED_API System::String get_FinishText();
1652  /// <summary>
1653  /// Sets a value of FinishText.
1654  /// </summary>
1655  ASPOSE_TASKS_SHARED_API void set_FinishText(const System::String& value);
1656  /// <summary>
1657  /// Gets a value indicating whether DisplayOnTimeline is set or not.
1658  /// </summary>
1659  ASPOSE_TASKS_SHARED_API bool get_DisplayOnTimeline();
1660  /// <summary>
1661  /// Sets a value indicating whether DisplayOnTimeline is set or not.
1662  /// </summary>
1663  ASPOSE_TASKS_SHARED_API void set_DisplayOnTimeline(bool value);
1664  /// <summary>
1665  /// Gets a value indicating whether Warning is set or not.
1666  /// </summary>
1667  ASPOSE_TASKS_SHARED_API bool get_Warning();
1668  /// <summary>
1669  /// Sets a value indicating whether Warning is set or not.
1670  /// </summary>
1671  ASPOSE_TASKS_SHARED_API void set_Warning(bool value);
1672  /// <summary>
1673  /// Represents activity id field - a task's unique identifier used by Primavera. (only applicable to Primavera projects).
1674  /// </summary>
1675  ASPOSE_TASKS_SHARED_API System::String get_ActivityId();
1676  /// <summary>
1677  /// Represents activity id field - a task's unique identifier used by Primavera. (only applicable to Primavera projects).
1678  /// </summary>
1679  ASPOSE_TASKS_SHARED_API void set_ActivityId(const System::String& value);
1680  /// <summary>
1681  /// The earned value schedule variance, through the project status date.
1682  /// Schedule variance (SV) is the difference between the BCWP and the BCWS.
1683  /// </summary>
1684  ASPOSE_TASKS_SHARED_API double get_SV();
1685  /// <summary>
1686  /// The earned value schedule variance, through the project status date.
1687  /// Schedule variance (SV) is the difference between the BCWP and the BCWS.
1688  /// </summary>
1689  ASPOSE_TASKS_SHARED_API void set_SV(double value);
1690 
1691  /// <summary>
1692  /// Recursively collects all child tasks of this task.
1693  /// </summary>
1694  /// <returns>A list of child tasks of this task.</returns>
1695  ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<Task>>> SelectAllChildTasks();
1696  /// <summary>
1697  /// Returns <see cref="TimephasedDataCollection"></see> object with <see cref="TimephasedData"></see> values within given start and end dates of specified time-phased data type.
1698  /// </summary>
1699  /// <param name="start">The start date for the time phased data.</param>
1700  /// <param name="end">The end date for the time phased data.</param>
1701  /// <param name="timephasedType">The type of time phased data (<see cref="Aspose::Tasks::TimephasedDataType"></see>).</param>
1702  /// <returns>A <see cref="TimephasedDataCollection"></see> object with <see cref="TimephasedData"></see> values within given start and end dates of specified timephased data type.</returns>
1703  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimephasedDataCollection> GetTimephasedData(System::DateTime start, System::DateTime end, TimephasedDataType timephasedType);
1704  /// <summary>
1705  /// Returns <see cref="TimephasedDataCollection"></see> object with <see cref="TimephasedData"></see> values within given start and end dates.
1706  /// </summary>
1707  /// <param name="start">The start date for the time phased data.</param>
1708  /// <param name="end">The end date for the time phased data.</param>
1709  /// <returns>List of <see cref="Aspose::Tasks::TimephasedData"></see> to be filled in.</returns>
1710  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimephasedDataCollection> GetTimephasedData(System::DateTime start, System::DateTime end);
1711  /// <summary>
1712  /// Creates full copy of a task without subtasks.
1713  /// </summary>
1714  /// <returns>Created copy of a task.</returns>
1715  ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Object> Clone();
1716  /// <summary>
1717  /// Returns a value indicating whether this instance is equal to a specified task.
1718  /// </summary>
1719  /// <param name="other">The specified task to compare with this instance.</param>
1720  /// <returns>returns true if the specified task and this instance have equal unique ids.</returns>
1721  ASPOSE_TASKS_SHARED_API bool Equals(System::SharedPtr<Task> other) override;
1722  /// <summary>
1723  /// Returns a value indicating whether this instance is equal to a specified object.
1724  /// </summary>
1725  /// <param name="obj">The specified object to compare with this instance.</param>
1726  /// <returns>returns true if the specified task and this instance have equal unique ids.</returns>
1727  ASPOSE_TASKS_SHARED_API bool Equals(System::SharedPtr<System::Object> obj) override;
1728  /// <summary>
1729  /// Returns short string representation of a task.
1730  /// The exact details of the representation are unspecified and subject to change.
1731  /// </summary>
1732  /// <returns>short string which represents task object.</returns>
1733  ASPOSE_TASKS_SHARED_API System::String ToString() const override;
1734  /// <summary>
1735  /// Returns a hash code value for this Task.
1736  /// </summary>
1737  /// <returns>returns a hash code value for this object.</returns>
1738  ASPOSE_TASKS_SHARED_API int32_t GetHashCode() const override;
1739  /// <summary>
1740  /// Returns the value to which the property is mapped in this container.
1741  /// </summary>
1742  /// <typeparam name="T">the type of the mapped value.</typeparam>
1743  /// <param name="key">the specified property key. <see cref="Tsk"></see> for getting the property key.</param>
1744  /// <returns>the value to which the property is mapped in this container.</returns>
1745  template <typename T>
1746  T Get(const Key<T, TaskKey>& key) const
1747  {
1748  // Need to distinguish between string and non-string versions of Get(KeyInternal), as the string one checks NotesManager
1749  // and generic one does not.
1750  // This only needs to be done in C# code as C++ resolves templates differently and will call a proper overloaded member
1751  // with no additional costs.
1752  PrintValue<T>(key);
1753  System::SharedPtr<System::Object> res;
1754 
1755  if (this->GetCalculatedValue(key.get_KeyType(), res))
1756  {
1757  return System::ExplicitCast<T>(res);
1758  }
1759 
1760  return this->container->template CheckPropAndGet<T>(key);
1761  }
1762 
1763  /// <summary>
1764  /// Maps the specified property to the specified value in this container.
1765  /// </summary>
1766  /// <param name="key">the specified property key. <see cref="Tsk"></see> for getting the property key.</param>
1767  /// <param name="val">the value.</param>
1768  /// <typeparam name="T">the type of the mapped value.</typeparam>
1769  template <typename T>
1770  void Set(const Key<T, TaskKey>& key, const T& val)
1771  {
1772  PrintValue<T>(System::MakeSharedPtr(this), key, val);
1773  // ReSharper disable once RedundantCast
1774  if (this->SetCalculatedValue(key.get_KeyType(), System::ExplicitCast<System::Object>(val)))
1775  {
1776  return;
1777  }
1778 
1779  this->PropertyValueChanging(key.get_PropCategory());
1780 
1781  this->container->template CheckPropAndSet<T>(key, val);
1782  }
1783 
1784  /// <summary>
1785  /// Deletes a task from parent project tasks collection and all its assignments.
1786  /// </summary>
1787  ASPOSE_TASKS_SHARED_API void Delete();
1788  /// <summary>
1789  /// Indents a task in the outline.
1790  /// </summary>
1791  ASPOSE_TASKS_SHARED_API void OutlineIndent();
1792  /// <summary>
1793  /// Promotes a task in the outline.
1794  /// </summary>
1795  ASPOSE_TASKS_SHARED_API void OutlineOutdent();
1796  /// <summary>
1797  /// Moves the current task at the same Outline Level before the specified task.
1798  /// If ParentProject.CalculationMode is None user should invoke Project.Recalculate() after using this method (It will reschedule all project tasks (start/finish dates, sets early/late dates) and calculate the dependent fields such as slacks, work and cost fields, outline levels).
1799  /// If ParentProject.CalculationMode is Manual the method will calculate only task id, outline level and outline numbers automatically.
1800  /// If ParentProject.CalculationMode is Automatic the method reschedules all project's tasks automatically
1801  /// (start/finish dates, sets early/late dates, calculates slacks, work and cost fields, recalculates ids and outline levels).
1802  /// </summary>
1803  /// <param name="beforeTask">Task before which the current task will be inserted.</param>
1804  ASPOSE_TASKS_SHARED_API void MoveToSibling(const System::SharedPtr<Task>& beforeTask);
1805  /// <summary>
1806  /// Moves the current task at the same Outline Level before a task with the specified Id.
1807  /// If ParentProject.CalculationMode is None user should invoke Project.Recalculate() after using this method (It will reschedule all project tasks (start/finish dates, sets early/late dates) and calculate the dependent fields such as slacks, work and cost fields, outline levels).
1808  /// If ParentProject.CalculationMode is Manual the method will calculate only task id, outline level and outline numbers automatically.
1809  /// If ParentProject.CalculationMode is Automatic the method reschedules all project's tasks automatically
1810  /// (start/finish dates, sets early/late dates, calculates slacks, work and cost fields, recalculates ids and outline levels).
1811  /// </summary>
1812  /// <param name="beforeTaskId">Id (<see cref="Tsk::Id"></see>) of a task before which the current task will be inserted.</param>
1813  ASPOSE_TASKS_SHARED_API void MoveToSibling(int32_t beforeTaskId);
1814  static bool _anonymous_method_0(System::SharedPtr<Task> t);
1815  static bool _anonymous_method_1(System::SharedPtr<Task> t);
1816 
1817 protected:
1818 
1819  /// <summary>
1820  /// Gets a collection of resource assignments for this object.
1821  /// </summary>
1822  ASPOSE_TASKS_SHARED_API void set_Assignments(const System::SharedPtr<ResourceAssignmentCollection>& value);
1823  /// <summary>
1824  /// Gets the parent project of a task.
1825  /// </summary>
1826  /// <remarks>
1827  /// Call Project.UpdateReferences to update these properties.
1828  /// </remarks>
1829  ASPOSE_TASKS_SHARED_API void set_ParentProject(const System::SharedPtr<Project>& value);
1830  /// <summary>
1831  /// Gets the parent task of a task.
1832  /// </summary>
1833  ASPOSE_TASKS_SHARED_API void set_ParentTask(const System::SharedPtr<Task>& value);
1834  /// <summary>
1835  /// Gets a child task collection of this object.
1836  /// TaskCollection object which represents children tasks.
1837  /// </summary>
1838  ASPOSE_TASKS_SHARED_API void set_Children(const System::SharedPtr<TaskCollection>& value);
1839  /// <summary>
1840  /// Gets a SplitPart collection that represents the portions of a task.
1841  /// </summary>
1842  ASPOSE_TASKS_SHARED_API void set_SplitParts(const System::SharedPtr<SplitPartCollection>& value);
1843  /// <summary>
1844  /// Gets ExtendedAttributeCollection object containing the values of an extended attribute.
1845  /// </summary>
1846  /// <remarks>
1847  /// Two pieces of data are necessary - a pointer back to the extended attribute table
1848  /// which is specified either by the unique ID or the Field ID, and the value
1849  /// which is specified either with the value, or a pointer back to the value list.
1850  /// </remarks>
1851  ASPOSE_TASKS_SHARED_API void set_ExtendedAttributes(const System::SharedPtr<ExtendedAttributeCollection>& value);
1852  /// <summary>
1853  /// Gets the instance of <see cref="RecurringTaskInfo"></see> class for the task which is a recurring task; if the task is not a recurring one then returns null;
1854  /// <remarks>The info for the instance of <see cref="RecurringTaskInfo"></see> is present in mpp file format only.</remarks>
1855  /// </summary>
1856  ASPOSE_TASKS_SHARED_API void set_RecurringInfo(const System::SharedPtr<RecurringTaskInfo>& value);
1857  /// <summary>
1858  /// Gets an object containing Primavera-specific properties for a task read from Primavera file.
1859  /// </summary>
1860  ASPOSE_TASKS_SHARED_API void set_PrimaveraProperties(const System::SharedPtr<PrimaveraTaskProperties>& value);
1861  ASPOSE_TASKS_SHARED_API System::DateTime get_SummaryProgress() const;
1862  ASPOSE_TASKS_SHARED_API void set_SummaryProgress(System::DateTime value);
1863  ASPOSE_TASKS_SHARED_API NullableBool get_IsShowBeforeProjectStartDateWarning() const;
1864  ASPOSE_TASKS_SHARED_API void set_IsShowBeforeProjectStartDateWarning(NullableBool value);
1865  ASPOSE_TASKS_SHARED_API NullableBool get_IsTaskAssigned() const;
1866  ASPOSE_TASKS_SHARED_API void set_IsTaskAssigned(NullableBool value);
1867  ASPOSE_TASKS_SHARED_API NullableBool get_IsScheduled() const;
1868  ASPOSE_TASKS_SHARED_API void set_IsScheduled(NullableBool value);
1869  ASPOSE_TASKS_SHARED_API bool get_IsRoot();
1870  ASPOSE_TASKS_SHARED_API bool get_IsParentTaskUidKnown();
1871  /// <summary>
1872  /// Gets the value of ParentTaskUid when the parent task object is not available.
1873  /// Used at the data loading stage to store the value of ParentTaskUid when the parent task object is not available.
1874  /// </summary>
1875  ASPOSE_TASKS_SHARED_API int32_t get_ParentTaskUid() const;
1876  /// <summary>
1877  /// Sets the value of ParentTaskUid when the parent task object is not available.
1878  /// Used at the data loading stage to store the value of ParentTaskUid when the parent task object is not available.
1879  /// </summary>
1880  ASPOSE_TASKS_SHARED_API void set_ParentTaskUid(int32_t value);
1881  ASPOSE_TASKS_SHARED_API System::Decimal get_BaselineCost();
1882  ASPOSE_TASKS_SHARED_API bool get_HasInflexibleConstraint();
1883  ASPOSE_TASKS_SHARED_API bool get_HasSemiFlexibleConstraint();
1884  ASPOSE_TASKS_SHARED_API bool get_BeyondDeadline();
1885  ASPOSE_TASKS_SHARED_API bool get_IsComplete();
1886  ASPOSE_TASKS_SHARED_API bool get_Started();
1887  ASPOSE_TASKS_SHARED_API bool get_ConstraintNotSet();
1888  ASPOSE_TASKS_SHARED_API bool get_HasNoActivePredecessors();
1889  ASPOSE_TASKS_SHARED_API bool get_HasNoActiveSuccessors();
1890  ASPOSE_TASKS_SHARED_API bool get_NotAssigned();
1891  ASPOSE_TASKS_SHARED_API bool get_AssignedToDefault();
1892  ASPOSE_TASKS_SHARED_API bool get_AssignedToMaterial();
1893  ASPOSE_TASKS_SHARED_API double get_TempId() const;
1894  ASPOSE_TASKS_SHARED_API void set_TempId(double value);
1895  ASPOSE_TASKS_SHARED_API bool get_IsLinked();
1896  ASPOSE_TASKS_SHARED_API bool get_OnlySFLinked();
1897  ASPOSE_TASKS_SHARED_API const System::SharedPtr<TaskLinkTable>& get_PredecessorsTable() const;
1898  ASPOSE_TASKS_SHARED_API const System::SharedPtr<TaskLinkTable>& get_SuccessorsTable() const;
1899  ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<TaskLink>>> get_PredecessorLinks();
1900  ASPOSE_TASKS_SHARED_API bool get_HasPredecessorLinks();
1901  ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<TaskLink>>> get_SuccessorLinks();
1902  ASPOSE_TASKS_SHARED_API bool get_HasSuccessorLinks();
1903  ASPOSE_TASKS_SHARED_API TimeUnitType get_BaselineDurationFormat();
1904  ASPOSE_TASKS_SHARED_API void set_BaselineDurationFormat(TimeUnitType value);
1905  ASPOSE_TASKS_SHARED_API bool get_AssignedToContoured();
1906 
1907  /// <summary>
1908  /// Initializes a new instance of the <see cref="Task"></see> class.
1909  /// <param name="parentProject">the specified parent project.</param>
1910  /// </summary>
1911  ASPOSE_TASKS_SHARED_API Task(const System::SharedPtr<Project>& parentProject);
1912 
1913  ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(Task, CODEPORTING_ARGS(const System::SharedPtr<Project>& parentProject));
1914 
1915  /// <summary>
1916  /// Initializes a new instance of the <see cref="Task"></see> class.
1917  /// <param name="parentProject">the specified parent project.</param>
1918  /// <param name="now">the task created date.</param>
1919  /// </summary>
1920  ASPOSE_TASKS_SHARED_API Task(const System::SharedPtr<Project>& parentProject, System::DateTime now);
1921 
1922  ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(Task, CODEPORTING_ARGS(const System::SharedPtr<Project>& parentProject, System::DateTime now));
1923 
1924  /// <summary>
1925  /// Initializes a new instance of the <see cref="Task"></see> class.
1926  /// </summary>
1927  /// <param name="parentProject">the specified parent project.</param>
1928  /// <param name="parentTask">the specified parent task.</param>
1929  ASPOSE_TASKS_SHARED_API Task(const System::SharedPtr<Project>& parentProject, const System::SharedPtr<Task>& parentTask);
1930 
1931  ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(Task, CODEPORTING_ARGS(const System::SharedPtr<Project>& parentProject, const System::SharedPtr<Task>& parentTask));
1932  /// <summary>
1933  /// Recursively enumerates the task and its descendant tasks.
1934  /// </summary>
1935  /// <returns>IEnumerable which can be used to enumerate all child tasks.</returns>
1936  ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<Task>>> EnumerateAllChildTasks();
1937  ASPOSE_TASKS_SHARED_API System::SharedPtr<TaskPlanner> GetTaskPlanner();
1938  /// <summary>
1939  /// Returns actual SplitParts without any side effect.
1940  /// </summary>
1941  /// <remarks>
1942  /// Use this method in case you do not want to save calculated SplitParts (as <see cref="SplitParts"></see> property does), so they can be calculated further.
1943  /// </remarks>
1944  ASPOSE_TASKS_SHARED_API System::SharedPtr<SplitPartCollection> GetCalculatedSplitParts();
1945  /// <summary>
1946  /// Recalculates task start/finish dates according to task duration.
1947  /// If applied to Project.RootTask reschedules all project's tasks start/finish dates, sets early/late dates and calculates slacks.
1948  /// </summary>
1949  ASPOSE_TASKS_SHARED_API void Recalculate();
1950  ASPOSE_TASKS_SHARED_API void Recalculate(bool calcManuals);
1951  /// <summary>
1952  /// Returns all children including subtasks of the specified task (parent task excluded).
1953  /// </summary>
1954  /// <param name="parentTask">Parent task.</param>
1955  /// <returns>List of children tasks.</returns>
1956  static ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Task>>> GetAllSubtasks(const System::SharedPtr<Task>& parentTask);
1957  /// <summary>
1958  /// Returns all active and not null children including subtasks of the specified task (parent task excluded).
1959  /// </summary>
1960  /// <param name="parentTask">Parent task.</param>
1961  /// <returns>List of children tasks.</returns>
1962  static ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Task>>> GetAllActiveSubtasks(const System::SharedPtr<Task>& parentTask);
1963  static ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<Task>>> EnumerateSubTasks(const System::SharedPtr<Task>& parentTask);
1964  static ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<Task>>> EnumerateAllActiveSubTasks(const System::SharedPtr<Task>& parentTask);
1965  static ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<Task>>> EnumerateAssignedSubTasks(const System::SharedPtr<Task>& parentTask);
1966  static ASPOSE_TASKS_SHARED_API void SortChildren(const System::SharedPtr<Task>& root);
1967  ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<ResourceAssignment>>> EnumerateValidAssignments();
1968  ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<ResourceAssignment>>> GetValidAssignments();
1969  ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<ResourceAssignment>>> EnumerateValidWorkAssignments();
1970  ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<ResourceAssignment>>> GetValidWorkAssignments();
1971  ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<ResourceAssignment>>> GetValidMaterialAssignments();
1972  ASPOSE_TASKS_SHARED_API void SetBaseline(BaselineType baselineType);
1973  ASPOSE_TASKS_SHARED_API void SetDefaultDuration();
1974  ASPOSE_TASKS_SHARED_API System::TimeSpan GetWorkByAssignmentsTD(System::DateTime date, TimephasedDataType assnWorkType);
1975  ASPOSE_TASKS_SHARED_API double GetCostByAssignmentsTD(System::DateTime date);
1976  ASPOSE_TASKS_SHARED_API bool HasOneValidAssignment(const System::SharedPtr<ResourceAssignment>& assn);
1977  ASPOSE_TASKS_SHARED_API void ClearRelations();
1978  ASPOSE_TASKS_SHARED_API Aspose::Tasks::Duration GetDuration(System::TimeSpan timeSpan);
1979  /// <summary>
1980  /// Calculated field.
1981  /// </summary>
1982  /// <param name="statusDate">Status date to define if task is late.</param>
1983  /// <returns>true if late, false otherwise.</returns>
1984  ASPOSE_TASKS_SHARED_API bool IsLate(System::DateTime statusDate);
1985  ASPOSE_TASKS_SHARED_API void SetFinish();
1986  ASPOSE_TASKS_SHARED_API System::SharedPtr<Aspose::Tasks::Calendar> GetCalendarOrStandard();
1987  ASPOSE_TASKS_SHARED_API void UpdateReferences();
1988  /// <summary>
1989  /// Set start date from finish and work.
1990  /// </summary>
1991  ASPOSE_TASKS_SHARED_API void SetStart();
1992  ASPOSE_TASKS_SHARED_API int32_t GetChildTaskIndex(const System::SharedPtr<Task>& child);
1993  ASPOSE_TASKS_SHARED_API void Expand(bool value);
1994  ASPOSE_TASKS_SHARED_API void CleanActuals();
1995  ASPOSE_TASKS_SHARED_API void SetManualStartFinish();
1996  ASPOSE_TASKS_SHARED_API void CalcSummaryWorkByChildren();
1997  ASPOSE_TASKS_SHARED_API void CalcSummaryCostByChildren();
1998  ASPOSE_TASKS_SHARED_API void CalcTaskDatesByAssignments();
1999  ASPOSE_TASKS_SHARED_API void SetDurationByStartFinish();
2000  ASPOSE_TASKS_SHARED_API void CalcFieldsByAssignments();
2001  ASPOSE_TASKS_SHARED_API void UpdateIsMilestone(Aspose::Tasks::Duration prevDuration, Aspose::Tasks::Duration duration);
2002  ASPOSE_TASKS_SHARED_API void RemoveTheDefaultAssignment();
2003  ASPOSE_TASKS_SHARED_API int32_t GetSplitPartsCount();
2004  /// <summary>
2005  /// Returns the value to which the property is mapped in this container.
2006  /// TODO: The method is smell, we have to use the IContainer.Get method and deliver the control on calculation to current ProjectState.
2007  /// </summary>
2008  /// <typeparam name="T">the type of the mapped value.</typeparam>
2009  /// <param name="key">the specified property key. <see cref="Tsk"></see> for getting the property key.</param>
2010  /// <param name="checkCalculated">check against calculated.</param>
2011  /// <returns>the value to which the property is mapped in this container.</returns>
2012  template <typename T>
2013  T Get1(Key<T, TaskKey> key, bool checkCalculated)
2014  {
2015  System::SharedPtr<System::Object> res;
2016  if (checkCalculated && this->GetCalculatedValue(key.get_KeyType(), res))
2017  {
2018  return System::ExplicitCast<T>(res);
2019  }
2020 
2021  return this->container->template CheckPropAndGet<T>(key);
2022  }
2023 
2024  template <typename T>
2025  void SetDirectly(Key<T, TaskKey> key, T val)
2026  {
2027  this->container->template CheckPropAndSet<T>(key, val);
2028  }
2029 
2030  ASPOSE_TASKS_SHARED_API bool IsManualUninitializedTask();
2031  ASPOSE_TASKS_SHARED_API bool IsManualOnNonWorkingTime();
2032  ASPOSE_TASKS_SHARED_API void PropertyValueChanging(uint8_t category);
2033  ASPOSE_TASKS_SHARED_API Util::DateTimeInterval GetRemainingEarlyStartFinish();
2034 
2035  virtual ASPOSE_TASKS_SHARED_API ~Task();
2036 
2037  #ifdef ASPOSE_GET_SHARED_MEMBERS
2038  ASPOSE_TASKS_SHARED_API void GetSharedMembers(System::Object::shared_members_type& result) const override;
2039  #endif
2040 
2041 
2042 private:
2043 
2044  System::SharedPtr<PropertyContainer<TaskKey>> container;
2045  System::SharedPtr<TimephasedDataCollection> timephasedData;
2046  System::SharedPtr<ResourceAssignmentCollection> assignments;
2047  System::WeakPtr<Task> parentTask;
2048  System::SharedPtr<SplitPartCollection> splitParts;
2049  TimeUnitType baselineDurationFormat;
2050  System::SharedPtr<RecurringTaskInfo> recurringInfo;
2051  System::SharedPtr<TaskPlanner> taskPlanner;
2052  System::WeakPtr<Project> pr_ParentProject;
2053  System::SharedPtr<OutlineCodeCollection> pr_OutlineCodes;
2054  System::SharedPtr<TaskCollection> pr_Children;
2055 
2056  ASPOSE_TASKS_SHARED_API bool get_HasChildren() override;
2057  ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<IExtendedAttributeParent>>> get_Items() override;
2058 
2059  System::SharedPtr<ExtendedAttributeCollection> pr_ExtendedAttributes;
2060  System::SharedPtr<TaskBaselineCollection> pr_Baselines;
2061  System::SharedPtr<PrimaveraTaskProperties> pr_PrimaveraProperties;
2062  System::DateTime pr_SummaryProgress;
2063  NullableBool pr_IsShowBeforeProjectStartDateWarning;
2064  NullableBool pr_IsTaskAssigned;
2065  NullableBool pr_IsScheduled;
2066  int32_t pr_ParentTaskUid;
2067  double pr_TempId;
2068  System::SharedPtr<TaskLinkTable> pr_PredecessorsTable;
2069 
2070  ASPOSE_TASKS_SHARED_API void set_PredecessorsTable(const System::SharedPtr<TaskLinkTable>& value);
2071 
2072  System::SharedPtr<TaskLinkTable> pr_SuccessorsTable;
2073 
2074  ASPOSE_TASKS_SHARED_API void set_SuccessorsTable(const System::SharedPtr<TaskLinkTable>& value);
2075 
2076  /// <summary>
2077  /// Prevents a default instance of the <see cref="Task"></see> class from being created.
2078  /// </summary>
2079  Task();
2080 
2081  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(Task, CODEPORTING_ARGS());
2082 
2083  /// <summary>
2084  /// Initializes a new instance of the <see cref="Task"></see> class.
2085  /// </summary>
2086  Task(System::DateTime created);
2087 
2088  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(Task, CODEPORTING_ARGS(System::DateTime created));
2089  System::SharedPtr<Aspose::Tasks::Calendar> GetCalendar() override;
2090  ASPOSE_TASKS_SHARED_API bool SetCalculatedValue(TaskKey keyType, const System::SharedPtr<System::Object>& v);
2091  ASPOSE_TASKS_SHARED_API bool GetCalculatedValue(TaskKey key, System::SharedPtr<System::Object>& res) const;
2092  void SetTaskStartInternal(const System::SharedPtr<Aspose::Tasks::Calendar>& cal);
2093  Task::DurationPair CalcSummaryWorkByChildrenInternal();
2094  void GetTimephasedWorkData(System::DateTime start, System::DateTime end, const System::SharedPtr<TimephasedDataCollection>& timephased, TimephasedDataType timephasedType);
2095  void GetTimephasedCostData(System::DateTime start, System::DateTime end, const System::SharedPtr<TimephasedDataCollection>& timephased, TimephasedDataType timephasedType);
2096  void CollectTimephasedFromChildren(System::DateTime start, System::DateTime end, TimephasedDataType timephasedType, const System::SharedPtr<TimephasedDataCollection>& timephased);
2097  void GetTimephasedBaselineData(System::DateTime start, System::DateTime end, const System::SharedPtr<TimephasedDataCollection>& timephased, TimephasedDataType timephasedType);
2098  static void AddBaselineByDatesAndType(System::DateTime start, System::DateTime end, const System::SharedPtr<TimephasedDataCollection>& timephased, TimephasedDataType timephasedType, const System::SharedPtr<TaskBaseline>& taskBaseline);
2099  void CalcProjectWorkAndCost();
2100  void InitBooleanProperties();
2101  void InitObligatoryDefaultValues();
2102  void InitDefaultValues();
2103  void SetManualFields();
2104  System::SharedPtr<SplitPartCollection> CalculateSplitParts();
2105  void CalcSplitParts(const System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<SplitPart>>>& parts);
2106  void CalcAssnSplits(const System::SharedPtr<System::Collections::Generic::IList<System::SharedPtr<SplitPart>>>& parts, const System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<SplitPart>>>& assnSplits);
2107  void SetPercentComplete(System::DateTime actualStartDate, System::DateTime actualFinishDate);
2108  System::SharedPtr<Task> GetParentTaskForIndent(const System::SharedPtr<Task>& task);
2109  void IncreaseOutlineLevel(const System::SharedPtr<Task>& task);
2110  void MoveChildrenAfterOutdent();
2111  void DeleteLinks();
2112  void RemoveAssignments(const System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<ResourceAssignment>>>& list);
2113  void SetBaselineValues(const System::SharedPtr<TaskBaseline>& bl);
2114  void SetBaselineTimephased(const System::SharedPtr<TaskBaseline>& bl);
2115  template <typename T>
2116  System::SharedPtr<TaskPlanner> GetOrInstantiatePlanner()
2117  {
2118  typedef TaskPlanner BaseT_TaskPlanner;
2119  assert_is_base_of(BaseT_TaskPlanner, T);
2120 
2121  if (this->taskPlanner != nullptr && System::ObjectExt::GetType(this->taskPlanner) == System::ObjectExt::GetType<T>())
2122  {
2123  return this->taskPlanner;
2124  }
2125 
2126  this->taskPlanner = TaskPlannerFactory::Create<T>(System::MakeSharedPtr(this));
2127  return this->taskPlanner;
2128  }
2129 
2130  static void CalculateActualStartFinishDates(const System::SharedPtr<ResourceAssignment>& assn, const System::SharedPtr<Calculations::ResourceAssignmentCalculator>& assignmentCalculator, System::DateTime& actualStartDate, System::DateTime& actualFinishDate);
2131  static void CalculateStartFinishDates(const System::SharedPtr<ResourceAssignment>& assn, const System::SharedPtr<Calculations::ResourceAssignmentCalculator>& assignmentCalculator, System::DateTime& startDate, System::DateTime& finishDate);
2132  template <typename T>
2133  static void PrintValue(const System::SharedPtr<Task>& task, Key<T, TaskKey> key, T val)
2134  {
2135  }
2136  template <typename T>
2137  static void PrintValue(Key<T, TaskKey> key)
2138  {
2139  }
2140 
2141 };
2142 
2143 } // namespace Tasks
2144 } // namespace Aspose
2145 
2146 
Contains resource leveling methods.
Definition: ResourceLeveler.h:45
Represents a collection of TaskBaseline objects.
Definition: TaskBaselineCollection.h:100
Represents a task in a project.
Definition: Task.h:387
A class for boolean values with possibility to check whether the value was defined or not.
Definition: NullableBool.h:21
Represents Baseline of a Task.
Definition: TaskBaseline.h:52
Represents a WBS Code Definition.
Definition: WBSCodeDefinition.h:55
Definition: Asn.h:12
Removes the specified task from a tree of tasks.
Definition: RemoveTask.h:30
Represents a collection of Task objects.
Definition: TaskCollection.h:102
Represents an item which stores statistical data for the task of the analyzed project.
Definition: RiskItemStatistics.h:48
Represents a collection of Calendar objects.
Definition: CalendarCollection.h:97
Represents a property key of a class of the specified type. An instance of this class is used when ge...
Definition: Asn.h:19
void Set(const Key< T, TaskKey > &key, const T &val)
Maps the specified property to the specified value in this container.
Definition: Task.h:1770
Represents duration in a project.
Definition: Duration.h:161
Represents a project.
Definition: Project.h:550
K get_KeyType() const
Gets the key of the property.
Definition: Key.h:119
Represents a resource in a project.
Definition: Resource.h:207
Denotes an entity which can contain Timephased Data.
Definition: IEntityWithTd.h:32
Represents a resource assignment in a project.
Definition: ResourceAssignment.h:225
T Get(const Key< T, TaskKey > &key) const
Returns the value to which the property is mapped in this container.
Definition: Task.h:1746
Represents a collection of ResourceAssignment objects.
Definition: ResourceAssignmentCollection.h:101
Represents the set of parameters are used to create a recurring task in a project.
Definition: RecurringTaskParameters.h:48
Helper class which provides useful operations with tasks.
Definition: TaskUtils.h:39