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