Aspose.Tasks for C++
Project.h
1 #pragma once
2 //-----------------------------------------------------------------------
3 // <copyright file="Project.cs" company="Aspose Pty Ltd">
4 // Copyright (c) 2002-2025 Aspose Pty Ltd. All Rights Reserved.
5 // </copyright>
6 //-----------------------------------------------------------------------
7 
8 #include <system/guid.h>
9 #include <system/enum_helpers.h>
10 #include <system/date_time.h>
11 #include <system/array.h>
12 
13 #include "aspose.tasks.cpp/Recalculation/ProjectCalculatedProperties.h"
14 #include "aspose.tasks.cpp/PropertyContainer.h"
15 #include "aspose.tasks.cpp/IContainer.h"
16 #include "aspose.tasks.cpp/ICalculatedPropertySetter.h"
17 #include "aspose.tasks.cpp/ICalculatedPropertyGetter.h"
18 #include "aspose.tasks.cpp/external/LicenseV2/Aspose.LicenseV2/Venture/IVentureLicensed.h"
19 #include "aspose.tasks.cpp/CalculatedPropertySetter.h"
20 #include "aspose.tasks.cpp/CalculatedPropertyGetter.h"
21 #include "aspose.tasks.cpp/ProjectDisplayOptions.h"
22 #include "aspose.tasks.cpp/Key.h"
23 #include "aspose.tasks.cpp/Enums/PrjKey.h"
24 #include "aspose.tasks.cpp/aspose_tasks_api_defs.h"
25 
26 namespace Aspose
27 {
28 namespace LicenseV2
29 {
30 class LicenseProperties;
31 namespace Venture
32 {
33 class VentureLicense;
34 } // namespace Venture
35 } // namespace LicenseV2
36 namespace Tasks
37 {
38 class AutoRecalculationState;
39 enum class BaselineType;
40 enum class CalculationMode;
41 namespace Calculations
42 {
43 class ActualTimephasedDataUpdater;
44 class ProjectCalculator;
45 class ProjectWorkAndCostCalculator;
46 class RescheduleIncompleteWorkCalculator;
47 class ResourceAssignmentCalculator;
48 class ResourceAssignmentVarianceCalculator;
49 class ResourceAssignmentWorkCalculator;
50 class ResourceCalculator;
51 class ResourceCostCalculator;
52 class ResourceOverAllocationCalculator;
53 class ResourceWorkCalculator;
54 class TaskByAssignmentCalculator;
55 class TaskCalculator;
56 class TaskSlackCalculator;
57 class TaskWorkCalculator;
58 } // namespace Calculations
59 class Calendar;
60 class CalendarCollection;
61 namespace Compound
62 {
63 class MscdFileSystem;
64 } // namespace Compound
65 namespace Connectivity
66 {
67 class DbSettings;
68 class MpdAssignmentBaselineMapper;
69 class MpdAssignmentMapper;
70 class MpdExtendedAttributeDefinitionMapper;
71 template <typename> class MpdField;
72 class MpdOutlineCodeDefinitionMapper;
73 class MpdOutlineCodeFieldMapper;
74 class MpdReader;
75 class MpdResourceBaselineMapper;
76 class MpdTaskBaselineMapper;
77 class MpdTaskLinkMapper;
78 class MpdTaskMapper;
79 class MpdUtils;
80 class MspCalendarMapper;
81 class MspDbReader;
82 class MspExtendedAttribute;
83 class MspProjectPropsMapper;
84 class MspTaskLinksMapper;
85 class MspTaskMapper;
86 class PmCalendarMapper;
87 class PmProjectMapper;
88 class PmProjectTimeMapper;
89 class PmResourceRateMapper;
90 class PmTaskRelationMapper;
91 class PmWbsMapper;
92 class PrimaveraDbReader;
93 } // namespace Connectivity
94 class CopyToOptions;
95 enum class CostAccrualType;
96 enum class CurrencySymbolPositionType;
97 enum class CustomField;
98 enum class CustomFieldType;
99 class CustomFieldTypeMap;
100 enum class DateFormat;
101 enum class DayType;
102 class Duration;
103 class DurationCalculator;
104 enum class EarnedValueMethodType;
105 class EvaluationModeDatesResetter;
106 class EVCalculator;
107 class ExtendedAttribute;
108 class ExtendedAttributeDefinition;
109 class ExtendedAttributeDefinitionCollection;
110 class Filter;
111 class FilterCollection;
112 class FixedDurationEffortDrivenTaskPlanner;
113 class FormulaToken;
114 class GanttChartView;
115 template <typename T,typename V> using GetAction = System::MulticastDelegate<V(T)>;
116 class Group;
117 class GroupCollection;
118 class IdGenerator;
119 enum class InternalFormatFlags : int64_t;
120 namespace IO
121 {
122 namespace Html
123 {
124 class HtmlCalendarExceptionsReader;
125 class HtmlCalendarTableReader;
126 class HtmlProjectTableReader;
127 class HtmlReadingUtils;
128 class HtmlResourceAssignmentBaseLineTableReader;
129 class HtmlResourceAssignmentTableReader;
130 class HtmlResourceBaseLineTableReader;
131 class HtmlResourceExtAttributesTableReader;
132 class HtmlResourceTableReader;
133 class HtmlTaskBaseLineTableReader;
134 class HtmlTaskExtAttributesTableReader;
135 class HtmlTaskTableReader;
136 } // namespace Html
137 namespace Mpx
138 {
139 class MpxReader;
140 class MPXRecord;
141 class MpxUtils;
142 } // namespace Mpx
143 namespace MSProject
144 {
145 class AssnFieldsMapper;
146 namespace Metadata
147 {
148 class AssignmentExtendedAttributeFlagOffsets;
149 class MppMetadata;
150 } // namespace Metadata
151 class Mpp12CalendarReader;
152 class Mpp12CalendarWriter;
153 class MPP12ExtendedAttributeDefinitionReader;
154 class MPP12OutlineCodeDefinitionWriter;
155 class MPP12Reader;
156 class MPP12ResourceAssignmentWriter;
157 class MPP12ResourceReader;
158 class MPP12ResourceWriter;
159 class MPP12TaskReader;
160 class Mpp12TaskTreeBuilder;
161 class MPP12TaskWriter;
162 class MPP12Writer;
163 class MPP14As12AssnWriter;
164 class MPP14As12TaskReader;
165 class MPP14As12TaskWriter;
166 class MPP14As9AssnWriter;
167 class MPP14As9TaskReader;
168 template <typename> class MPP14AsXResourceAssignmentReader;
169 class MPP14ExtendedAttributeDefinitionReader;
170 class MPP14OutlineCodeDefinitionWriter;
171 class MPP14Reader;
172 class MPP14ResourceAssignmentReader;
173 class MPP14ResourceAssignmentWriter;
174 class MPP14ResourceWriter;
175 class MPP14TaskReader;
176 class MPP14TaskWriter;
177 class Mpp15CalendarWriter;
178 class MPP15Reader;
179 class MPP15ResourceWriter;
180 class MPP15TaskWriter;
181 class MPP9AssignmentExtendedAttributeReader;
182 class MPP9AssignmentExtendedAttributeWriter;
183 class Mpp9CalendarWriter;
184 class MPP9DefaultWeekWorkingDaysReader;
185 class Mpp9DefaultWeekWorkingDaysWriter;
186 class MPP9ExtendedAttributeDefinitionReader;
187 class MPP9ExtendedAttributeDefinitionWriter;
188 class MPP9ExtendedAttributeReader;
189 class MPP9OutlineCodeDefinitionWriter;
190 class MPP9Reader;
191 class MPP9ResourceAssignmentReader;
192 class MPP9ResourceAssignmentWriter;
193 class MPP9ResourceWriter;
194 class MPP9TaskReader;
195 class Mpp9TaskTreeBuilder;
196 class MPP9Writer;
197 class MPPAssignmentExtendedAttributeReader;
198 class MPPAssignmentExtendedAttributeWriter;
199 class MppCalendarWriter;
200 class MppCustomFieldsReader;
201 class MPPExtendedAttributeReader;
202 class MPPExtendedAttributeWriter;
203 class MPPGanttBarStyleWriter;
204 class MppGroupWriter;
205 class MPPOutlineCodeDefinitionWriter;
206 class MppProject;
207 class MPPProjectProps2Reader;
208 class MPPProjectProps2Writer;
209 class MPPProjectPropsReader;
210 class MPPProjectPropsWriter;
211 class MPPReader;
212 class MPPResourceAssignmentReader;
213 class MPPResourceAssignmentWriter;
214 class MPPResourceReader;
215 class MPPResourceWriter;
216 class MppSavedViewStateWriter;
217 class MPPTaskLinksWriter;
218 class MPPTaskReader;
219 class MPPTaskWriter;
220 class MPPUtils;
221 class MppViewWriter;
222 class MppWeekDayReader;
223 class MPPWriter;
224 class RscFieldsMapper;
225 class TaskFieldsMapper;
226 class TimelineViewWriter;
227 namespace Writers
228 {
229 class MPP14As9TaskWriter;
230 class MPP9TaskWriter;
231 class MppSubprojectsWriter;
232 } // namespace Writers
233 } // namespace MSProject
234 namespace PrimaveraXml
235 {
236 class P6XmlUtils;
237 class PrimaveraActivityNodeReader;
238 class PrimaveraProjectNodeReader;
239 class PrimaveraProjectScheduleOptionsNodeReader;
240 class PrimaveraReader;
241 class PrimaveraRelationshipNodeReader;
242 class PrimaveraResourceNodeReader;
243 class PrimaveraResourceRateNodeReader;
244 } // namespace PrimaveraXml
245 namespace Pwa
246 {
247 namespace InternalApi
248 {
249 class ExtendedAttributeValueReader;
250 class InternalApiProjectReader;
251 class InternalApiProjectSerializer;
252 class InternalApiProjectWriter;
253 namespace Mapping
254 {
255 class CalendarToRawValuesMapper;
256 class ExtendedAttributeDefinitionMapper;
257 class ExtendedAttributeDefinitionToRawValuesMapper;
258 template <typename> class ExtendedAttributeParentEntityToRawValuesMapper;
259 class ProjectAssignmentsMapper;
260 class ProjectCalendarGuidPropertyMapper;
261 class ProjectCalendarsMapper;
262 class ProjectGuidPropertyMapper;
263 class ProjectResourcesMapper;
264 class ProjectRootMapper;
265 class ProjectTasksMapper;
266 class ProjectToRawValuesMapper;
267 class ProjectViewsMapper;
268 class ProjectWeekDaysPropertyMapper;
269 class TaskLinkEntityMapper;
270 class TaskLinkToRawValuesMapper;
271 } // namespace Mapping
272 } // namespace InternalApi
273 } // namespace Pwa
274 namespace Xer
275 {
276 class PrimaveraExtendedAttributeBuilder;
277 class PrimaveraExtendedAttributeDefinitionBuilder;
278 class PrimaveraExtendedAttributeLookupBuilder;
279 class XerPrimaveraReader;
280 class XerProjectNormalizer;
281 class XerProjectReader;
282 class XerRecord;
283 class XerRecordValueReader;
284 class XerRelationReader;
285 class XerResourceRateReader;
286 class XerRoleWithRates;
287 class XerScheduleOptionsReader;
288 class XerTaskReader;
289 } // namespace Xer
290 namespace Xml
291 {
292 class BaselineNodeReader;
293 class ExtendedAttributeNodeReader;
294 class ProjectNodeReader;
295 class ProjectNodeWriter;
296 class ResourceAssignmentNodeReader;
297 class ResourceNodeReader;
298 class TaskLinksNodeReader;
299 class TaskNodeReader;
300 class TaskNodeWriter;
301 class XmlReader;
302 class XmlWriter;
303 } // namespace Xml
304 } // namespace IO
305 namespace Leveling
306 {
307 class LevelingAlgorithm;
308 class ResourceLeveler;
309 } // namespace Leveling
310 class LinkedTasksChain;
311 class LoadOptions;
312 class ManualState;
313 class MeteredLicenseManager;
314 enum class Month;
315 class NullableBool;
316 class OleObjectCollection;
317 class OutlineCodeDefinition;
318 class OutlineCodeDefinitionCollection;
319 class OutlineCodesSynchronizer;
320 class OutlineNumbersCalculator;
321 class ParseErrorArgs;
322 using ParseErrorCallback = System::MulticastDelegate<System::SharedPtr<System::Object>(System::SharedPtr<System::Object>, System::SharedPtr<Aspose::Tasks::ParseErrorArgs>)>;
323 class PercentCompleteCalculator;
324 class PrimaveraProjectProperties;
325 class PrimaveraProjectReader;
326 class PrimaveraReadOptions;
327 class ProjDateAdd;
328 class ProjDateDiff;
329 class ProjDateSub;
330 class ProjectFileInfo;
331 class ProjectFormatDetector;
332 class ProjectIntegrityValidator;
333 class ProjectReader;
334 class ProjectState;
335 class ProjectWorkUpdater;
336 namespace Properties
337 {
338 class BuiltInProjectPropertyCollection;
339 class CustomProjectPropertyCollection;
340 class ProjectPropertyCollection;
341 } // namespace Properties
342 template <typename> class PropertyContainer;
343 class RecalculatingStateContext;
344 namespace Recalculation
345 {
346 class TaskSplitCalculator;
347 } // namespace Recalculation
348 class RecurringTaskBuilder;
349 class RecurringTaskParameters;
350 class Resource;
351 class ResourceAssignment;
352 class ResourceAssignmentCollection;
353 class ResourceCollection;
354 namespace RiskAnalysis
355 {
356 class MonteCarloIteration;
357 namespace Reporting
358 {
359 class RiskReportBuilder;
360 } // namespace Reporting
361 } // namespace RiskAnalysis
362 namespace Rollup
363 {
364 class DurationExtendedAttributeComparer;
365 } // namespace Rollup
366 class SavedView;
367 namespace Saving
368 {
369 class CsvOptions;
370 class CsvWriter;
371 namespace Excel
372 {
373 namespace OpenXML
374 {
375 class XlsxWriter;
376 } // namespace OpenXML
377 } // namespace Excel
378 class GdHtmlWriter;
379 class HtmlCalendarExceptionTable;
380 class HtmlCalendarTable;
381 class HtmlResourceAssignmentBaseLineTable;
382 class HtmlResourceAssignmentTable;
383 class HtmlResourceBaseLineTable;
384 class HtmlResourceExtendedAttributesTable;
385 class HtmlResourceTable;
386 class HtmlTaskBaseLineTable;
387 class HtmlTaskExtendedAttributesTable;
388 class HtmlTaskTable;
389 class HtmlUtils;
390 class HtmlWriter;
391 class ImageWriter;
392 class LayoutBuilderFactory;
393 class MPPSaveOptions;
394 class MpxResourceModel;
395 class MpxTaskModel;
396 class MpxWriter;
397 class PdfWriter;
398 class PrimaveraActivityNodeWriter;
399 class PrimaveraAssignmentNodeWriter;
400 class PrimaveraP6XmlWriter;
401 class PrimaveraProjectNodeWriter;
402 class PrimaveraXerWriter;
403 class ReportSaveManager;
404 enum class SaveFileFormat;
405 class SaveManager;
406 class SaveOptions;
407 class SaveTemplateOptions;
408 class SimpleSaveOptions;
409 class SSWriter;
410 class SvgWriter;
411 class TemplateProjectLoader;
412 class TemplateWriter;
413 class TiffWriter;
414 class XamlWriter;
415 class XerAssignmentTable;
416 class XerCalendarTable;
417 class XerRelationTable;
418 class XerResourceRatesTable;
419 class XerResourceTable;
420 class XerTaskTable;
421 class XerWBSTable;
422 class XpsWriter;
423 } // namespace Saving
424 namespace Scheduling
425 {
426 class CriticalPathAlgorithm;
427 class FromFinishScheduler;
428 class FromStartScheduler;
429 class RescheduleAlgorithm;
430 class TopologicalSort;
431 class TopsortCriticalPath;
432 } // namespace Scheduling
433 template <typename T,typename V> using SetAction = System::MulticastDelegate<void(T, V)>;
434 class SharedAssignmentCollection;
435 class TableCollection;
436 class Task;
437 class TaskBaseline;
438 class TaskCollection;
439 class TaskFieldsFormulaParser;
440 class TaskLink;
441 class TaskLinkCollection;
442 class TaskPlanner;
443 class TaskPlannerAssignmentManager;
444 enum class TaskStartDateType;
445 class TaskTreeBuilder;
446 enum class TaskType;
447 class TimelineView;
448 class TimephasedDataMaker;
449 enum class TimeUnitType : int8_t;
450 namespace Util
451 {
452 class CalculatedExtendedAttributeUtils;
453 class CalendarHelper;
454 class ExtendedAttributeChecker;
455 namespace Fields
456 {
457 class ProjectFieldToValue;
458 } // namespace Fields
459 class PrimaveraTasksProcessor;
460 class RateHelper;
461 class SavingUtils;
462 class TaskIdReEnumerator;
463 class TasksIdTracker;
464 } // namespace Util
465 namespace Validators
466 {
467 class TaskValidator;
468 } // namespace Validators
469 class VbaProject;
470 class View;
471 class ViewCollection;
472 namespace Visualization
473 {
474 template <typename> class ApsBaseChartBuilder;
475 class ApsGanttChartLayoutBuilder;
476 template <typename> class ApsLayoutBuilder;
477 class ApsReportBestPracticesAnalyzerBuilder;
478 class ApsReportBuilder;
479 class ApsReportBurndownBuilder;
480 class ApsReportCashFlowBuilder;
481 class ApsReportCostOverrunsBuilder;
482 class ApsReportCostOverviewBuilder;
483 class ApsReportLateTasksBuilder;
484 class ApsReportMilestonesBuilder;
485 class ApsReportProjectOverviewBuilder;
486 class ApsReportResourceCostOverviewBuilder;
487 class ApsReportSlippingTasksBuilder;
488 class ApsReportTaskCostOverviewBuilder;
489 class ApsReportUpcomingTasksBuilder;
490 class ApsReportWorkOverviewBuilder;
491 class ApsResourceSheetBuilder;
492 class ApsResourceUsageBuilder;
493 class AssignmentToColumnText;
494 template <typename> class FieldToColumnText;
495 class FontCollection;
496 class HeaderFooterTemplateFieldConverter;
497 class LegendItemsFlowLayoutBuilder;
498 enum class PageSize;
499 enum class PresentationFormat;
500 class ProjectView;
501 enum class ReportType;
502 class ResourceToColumnText;
503 class TaskToColumnText;
504 enum class Timescale;
505 } // namespace Visualization
506 class WbsCalculator;
507 class WBSCodeDefinition;
508 class WeekDayCollection;
509 } // namespace Tasks
510 } // namespace Aspose
511 namespace System
512 {
513 namespace Collections
514 {
515 namespace Generic
516 {
517 template <typename, typename> class IDictionary;
518 template <typename> class IEnumerable;
519 template <typename> class IList;
520 template <typename> class List;
521 } // namespace Generic
522 } // namespace Collections
523 namespace IO
524 {
525 class FileStream;
526 class Stream;
527 class StreamReader;
528 } // namespace IO
529 class TimeSpan;
530 } // namespace System
531 
532 namespace Aspose {
533 
534 namespace Tasks {
535 
536 /// <summary>
537 /// Represents a project.
538 /// </summary>
539 /// <remarks>
540 /// <p>The <b>Project</b> is a central class in the Aspose.Tasks library.</p>
541 /// One can use <b>Project</b> to read one of supported project management formats: MPP, MPT, MPX, XML.
542 /// <p>To load an existing document in any of the supported formats, pass a file name or a stream into one of the <b>Project</b> constructors. To create a blank project, call the parameterless constructor.</p>
543 /// <p>Use one of the Save method overloads to save the project in any of the <see cref="Aspose::Tasks::Saving::SaveFileFormat"></see> formats: Primavera: P6 XML, PM XER; Microsoft Excel: XLSX, XML; Fixed Layout: PDF; Images: JPEG, PNG, BMP, TIFF, SVG; Text: TXT; Others: HTML.</p>
544 /// <p>The <b>Project</b> stores project-wide information such as <see cref="Aspose::Tasks::Project::Views"></see>,
545 /// <see cref="Aspose::Tasks::Project::BuiltInProps"></see>, <see cref="Aspose::Tasks::Project::CustomProps"></see>, and <see cref="Aspose::Tasks::Project::ExtendedAttributes"></see>.
546 /// Most of these objects are accessible via the corresponding properties of the <b>Project</b> class.</p>
547 /// <p>The <b>Project</b> is a root entity that contains entry points to manipulate other project entities, such as <see cref="Aspose::Tasks::Task"></see>, <see cref="Aspose::Tasks::Resource"></see>, <see cref="Aspose::Tasks::ResourceAssignment"></see>, <see cref="Aspose::Tasks::ExtendedAttribute"></see> and <see cref="Aspose::Tasks::Calendar"></see>.</p>
548 /// The <b>Project</b> entities can be accessed via typed collections, for example <see cref="Aspose::Tasks::Task::Children"></see>, <see cref="Aspose::Tasks::Project::Resources"></see>, <see cref="Aspose::Tasks::Project::ResourceAssignments"></see>, etc.
549 /// </remarks>
550 class ASPOSE_TASKS_SHARED_CLASS Project : public Aspose::Tasks::IContainer<Aspose::Tasks::PrjKey>, public Aspose::LicenseV2::Venture::IVentureLicensed
551 {
552  typedef Project ThisType;
553  typedef Aspose::Tasks::IContainer<Aspose::Tasks::PrjKey> BaseType;
554  typedef Aspose::LicenseV2::Venture::IVentureLicensed BaseType1;
555 
556  typedef ::System::BaseTypesInfo<BaseType, BaseType1> ThisTypeBaseTypesInfo;
557  ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
558 
559  friend class Aspose::Tasks::Calculations::ActualTimephasedDataUpdater;
560  friend class Aspose::Tasks::Calculations::RescheduleIncompleteWorkCalculator;
561  friend class Aspose::Tasks::Calculations::ResourceOverAllocationCalculator;
562  friend class Aspose::Tasks::Calculations::ProjectCalculator;
563  friend class Aspose::Tasks::Calculations::ProjectWorkAndCostCalculator;
564  friend class Aspose::Tasks::Calculations::ResourceAssignmentCalculator;
565  friend class Aspose::Tasks::Calculations::ResourceAssignmentWorkCalculator;
566  friend class Aspose::Tasks::Calculations::ResourceCalculator;
567  friend class Aspose::Tasks::Calculations::ResourceCostCalculator;
568  friend class Aspose::Tasks::Calculations::ResourceWorkCalculator;
569  friend class Aspose::Tasks::Calculations::TaskByAssignmentCalculator;
570  friend class Aspose::Tasks::Calculations::TaskCalculator;
571  friend class Aspose::Tasks::Calculations::ResourceAssignmentVarianceCalculator;
572  friend class Aspose::Tasks::Calculations::TaskSlackCalculator;
573  friend class Aspose::Tasks::Calculations::TaskWorkCalculator;
574  friend class Aspose::Tasks::Calendar;
576  friend class Aspose::Tasks::TaskFieldsFormulaParser;
577  friend class Aspose::Tasks::IO::MSProject::MppGroupWriter;
578  friend class Aspose::Tasks::IO::PrimaveraXml::P6XmlUtils;
579  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraActivityNodeReader;
580  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraProjectNodeReader;
581  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraProjectScheduleOptionsNodeReader;
582  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraReader;
583  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraRelationshipNodeReader;
584  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraResourceNodeReader;
585  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraResourceRateNodeReader;
586  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectViewsMapper;
587  friend class Aspose::Tasks::IO::Xer::PrimaveraExtendedAttributeDefinitionBuilder;
588  friend class Aspose::Tasks::IO::Xer::PrimaveraExtendedAttributeLookupBuilder;
589  friend class Aspose::Tasks::IO::Xer::XerScheduleOptionsReader;
590  friend class Aspose::Tasks::IO::Xer::XerRecordValueReader;
591  friend class Aspose::Tasks::Leveling::LevelingAlgorithm;
593  friend class Aspose::LicenseV2::LicenseProperties;
594  friend class Aspose::Tasks::RecalculatingStateContext;
595  friend class Aspose::Tasks::Resource;
597  friend class Aspose::Tasks::Saving::TemplateProjectLoader;
598  friend class Aspose::Tasks::Task;
599  friend class Aspose::Tasks::Util::RateHelper;
600  friend class Aspose::Tasks::Util::SavingUtils;
601  friend class Aspose::Tasks::IO::MSProject::Mpp9DefaultWeekWorkingDaysWriter;
602  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectGuidPropertyMapper;
603  friend class Aspose::Tasks::IO::Pwa::InternalApi::InternalApiProjectWriter;
604  template<typename FT0> friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ExtendedAttributeParentEntityToRawValuesMapper;
605  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::CalendarToRawValuesMapper;
606  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ExtendedAttributeDefinitionToRawValuesMapper;
607  friend class Aspose::Tasks::IO::Pwa::InternalApi::InternalApiProjectSerializer;
608  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectRootMapper;
609  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::TaskLinkToRawValuesMapper;
610  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectToRawValuesMapper;
611  friend class Aspose::Tasks::CustomFieldTypeMap;
612  friend class Aspose::Tasks::EVCalculator;
615  friend class Aspose::Tasks::FormulaToken;
616  friend class Aspose::Tasks::ProjDateAdd;
617  friend class Aspose::Tasks::ProjDateDiff;
618  friend class Aspose::Tasks::ProjDateSub;
619  friend class Aspose::Tasks::View;
620  friend class Aspose::Tasks::Connectivity::MpdAssignmentBaselineMapper;
621  friend class Aspose::Tasks::Connectivity::MpdAssignmentMapper;
622  template<typename FT0> friend class Aspose::Tasks::Connectivity::MpdField;
623  friend class Aspose::Tasks::Connectivity::MpdExtendedAttributeDefinitionMapper;
624  friend class Aspose::Tasks::Connectivity::MpdOutlineCodeDefinitionMapper;
625  friend class Aspose::Tasks::Connectivity::MpdOutlineCodeFieldMapper;
626  friend class Aspose::Tasks::Connectivity::MpdReader;
627  friend class Aspose::Tasks::Connectivity::MpdResourceBaselineMapper;
628  friend class Aspose::Tasks::Connectivity::MpdTaskBaselineMapper;
629  friend class Aspose::Tasks::Connectivity::MpdTaskLinkMapper;
630  friend class Aspose::Tasks::Connectivity::MpdTaskMapper;
631  friend class Aspose::Tasks::Connectivity::MpdUtils;
632  friend class Aspose::Tasks::Connectivity::MspCalendarMapper;
633  friend class Aspose::Tasks::Connectivity::MspExtendedAttribute;
634  friend class Aspose::Tasks::Connectivity::MspDbReader;
635  friend class Aspose::Tasks::Connectivity::MspProjectPropsMapper;
636  friend class Aspose::Tasks::Connectivity::MspTaskLinksMapper;
637  friend class Aspose::Tasks::Connectivity::MspTaskMapper;
638  friend class Aspose::Tasks::Connectivity::PmCalendarMapper;
639  friend class Aspose::Tasks::Connectivity::PmProjectMapper;
640  friend class Aspose::Tasks::Connectivity::PmProjectTimeMapper;
641  friend class Aspose::Tasks::Connectivity::PmResourceRateMapper;
642  friend class Aspose::Tasks::Connectivity::PmTaskRelationMapper;
643  friend class Aspose::Tasks::Connectivity::PmWbsMapper;
644  friend class Aspose::Tasks::Connectivity::PrimaveraDbReader;
645  friend class Aspose::Tasks::IO::Html::HtmlCalendarExceptionsReader;
646  friend class Aspose::Tasks::IO::Html::HtmlCalendarTableReader;
647  friend class Aspose::Tasks::IO::Html::HtmlProjectTableReader;
648  friend class Aspose::Tasks::IO::Html::HtmlReadingUtils;
649  friend class Aspose::Tasks::IO::Html::HtmlResourceAssignmentBaseLineTableReader;
650  friend class Aspose::Tasks::IO::Html::HtmlResourceAssignmentTableReader;
651  friend class Aspose::Tasks::IO::Html::HtmlResourceBaseLineTableReader;
652  friend class Aspose::Tasks::IO::Html::HtmlResourceExtAttributesTableReader;
653  friend class Aspose::Tasks::IO::Html::HtmlResourceTableReader;
654  friend class Aspose::Tasks::IO::Html::HtmlTaskBaseLineTableReader;
655  friend class Aspose::Tasks::IO::Html::HtmlTaskExtAttributesTableReader;
656  friend class Aspose::Tasks::IO::Html::HtmlTaskTableReader;
657  friend class Aspose::Tasks::Visualization::LegendItemsFlowLayoutBuilder;
658  friend class Aspose::Tasks::IO::MSProject::MPPAssignmentExtendedAttributeReader;
659  friend class Aspose::Tasks::IO::MSProject::Mpp12CalendarReader;
660  friend class Aspose::Tasks::IO::MSProject::MPP9DefaultWeekWorkingDaysReader;
661  friend class Aspose::Tasks::IO::MSProject::MPP12ExtendedAttributeDefinitionReader;
662  friend class Aspose::Tasks::IO::MSProject::MPP12Reader;
663  friend class Aspose::Tasks::IO::MSProject::MPPReader;
664  friend class Aspose::Tasks::IO::MSProject::MPP9ResourceAssignmentReader;
665  friend class Aspose::Tasks::IO::MSProject::MPP12ResourceReader;
666  friend class Aspose::Tasks::IO::MSProject::MPPResourceReader;
667  friend class Aspose::Tasks::IO::MSProject::MPP12TaskReader;
668  friend class Aspose::Tasks::IO::MSProject::MPPTaskReader;
669  friend class Aspose::Tasks::IO::MSProject::Mpp12TaskTreeBuilder;
670  friend class Aspose::Tasks::IO::MSProject::MppWeekDayReader;
671  friend class Aspose::Tasks::IO::MSProject::MPP14As12TaskReader;
672  friend class Aspose::Tasks::IO::MSProject::MPP14As9TaskReader;
673  template<typename FT0> friend class Aspose::Tasks::IO::MSProject::MPP14AsXResourceAssignmentReader;
674  friend class Aspose::Tasks::IO::MSProject::MPP14ExtendedAttributeDefinitionReader;
675  friend class Aspose::Tasks::IO::MSProject::MPP14Reader;
676  friend class Aspose::Tasks::IO::MSProject::MPP14ResourceAssignmentReader;
677  friend class Aspose::Tasks::IO::MSProject::MPP14TaskReader;
678  friend class Aspose::Tasks::IO::MSProject::MPP12ResourceWriter;
679  friend class Aspose::Tasks::IO::MSProject::MPP9ResourceWriter;
680  friend class Aspose::Tasks::IO::MSProject::Mpp15CalendarWriter;
681  friend class Aspose::Tasks::IO::MSProject::MPP14OutlineCodeDefinitionWriter;
682  friend class Aspose::Tasks::IO::MSProject::MPP15Reader;
683  friend class Aspose::Tasks::IO::MSProject::MPP14ResourceAssignmentWriter;
684  friend class Aspose::Tasks::IO::MSProject::MPP15ResourceWriter;
685  friend class Aspose::Tasks::IO::MSProject::MPP14ResourceWriter;
686  friend class Aspose::Tasks::IO::MSProject::MPP15TaskWriter;
687  friend class Aspose::Tasks::IO::MSProject::MPP14TaskWriter;
688  friend class Aspose::Tasks::IO::MSProject::MPPWriter;
689  friend class Aspose::Tasks::IO::MSProject::MPP9AssignmentExtendedAttributeReader;
690  friend class Aspose::Tasks::IO::MSProject::MPP9ExtendedAttributeDefinitionReader;
691  friend class Aspose::Tasks::IO::MSProject::MPP9ExtendedAttributeReader;
692  friend class Aspose::Tasks::IO::MSProject::MPPExtendedAttributeReader;
693  friend class Aspose::Tasks::IO::MSProject::MPP9Reader;
694  friend class Aspose::Tasks::IO::MSProject::MPPResourceAssignmentReader;
695  friend class Aspose::Tasks::IO::MSProject::MPP9TaskReader;
696  friend class Aspose::Tasks::IO::MSProject::Mpp9TaskTreeBuilder;
697  friend class Aspose::Tasks::IO::MSProject::Metadata::AssignmentExtendedAttributeFlagOffsets;
698  friend class Aspose::Tasks::IO::MSProject::MppCustomFieldsReader;
699  friend class Aspose::Tasks::IO::MSProject::MppProject;
700  friend class Aspose::Tasks::IO::MSProject::MPPProjectProps2Reader;
701  friend class Aspose::Tasks::IO::MSProject::MPPProjectPropsReader;
702  friend class Aspose::Tasks::IO::MSProject::MPPUtils;
703  friend class Aspose::Tasks::IO::MSProject::MPPAssignmentExtendedAttributeWriter;
704  friend class Aspose::Tasks::IO::MSProject::Mpp12CalendarWriter;
705  friend class Aspose::Tasks::IO::MSProject::MppCalendarWriter;
706  friend class Aspose::Tasks::IO::MSProject::MPPExtendedAttributeWriter;
707  friend class Aspose::Tasks::IO::MSProject::MPP12OutlineCodeDefinitionWriter;
708  friend class Aspose::Tasks::IO::MSProject::MPPOutlineCodeDefinitionWriter;
709  friend class Aspose::Tasks::IO::MSProject::MPP12ResourceAssignmentWriter;
710  friend class Aspose::Tasks::IO::MSProject::MPPResourceAssignmentWriter;
711  friend class Aspose::Tasks::IO::MSProject::MPPResourceWriter;
712  friend class Aspose::Tasks::IO::MSProject::MPPTaskLinksWriter;
713  friend class Aspose::Tasks::IO::MSProject::MPP12TaskWriter;
714  friend class Aspose::Tasks::IO::MSProject::MPPTaskWriter;
715  friend class Aspose::Tasks::IO::MSProject::MPP12Writer;
716  friend class Aspose::Tasks::IO::MSProject::MPP14As12AssnWriter;
717  friend class Aspose::Tasks::IO::MSProject::MPP14As12TaskWriter;
718  friend class Aspose::Tasks::IO::MSProject::MPP14As9AssnWriter;
719  friend class Aspose::Tasks::IO::MSProject::MPP9ResourceAssignmentWriter;
720  friend class Aspose::Tasks::IO::MSProject::Writers::MPP14As9TaskWriter;
721  friend class Aspose::Tasks::IO::MSProject::Writers::MPP9TaskWriter;
722  friend class Aspose::Tasks::IO::MSProject::MPP9AssignmentExtendedAttributeWriter;
723  friend class Aspose::Tasks::IO::MSProject::Mpp9CalendarWriter;
724  friend class Aspose::Tasks::IO::MSProject::MPP9ExtendedAttributeDefinitionWriter;
725  friend class Aspose::Tasks::IO::MSProject::MPP9OutlineCodeDefinitionWriter;
726  friend class Aspose::Tasks::IO::MSProject::MPP9Writer;
727  friend class Aspose::Tasks::IO::MSProject::MPPProjectProps2Writer;
728  friend class Aspose::Tasks::IO::MSProject::MPPProjectPropsWriter;
729  friend class Aspose::Tasks::IO::MSProject::Writers::MppSubprojectsWriter;
730  friend class Aspose::Tasks::IO::MSProject::MppSavedViewStateWriter;
731  friend class Aspose::Tasks::IO::MSProject::MppViewWriter;
732  friend class Aspose::Tasks::IO::MSProject::MPPGanttBarStyleWriter;
733  friend class Aspose::Tasks::IO::MSProject::TimelineViewWriter;
734  friend class Aspose::Tasks::IO::Mpx::MpxReader;
735  friend class Aspose::Tasks::TaskTreeBuilder;
736  friend class Aspose::Tasks::IO::Mpx::MPXRecord;
737  friend class Aspose::Tasks::IO::Mpx::MpxUtils;
738  friend class Aspose::Tasks::IO::Xer::XerPrimaveraReader;
739  friend class Aspose::Tasks::IO::Xer::PrimaveraExtendedAttributeBuilder;
740  friend class Aspose::Tasks::IO::Xer::XerProjectNormalizer;
741  friend class Aspose::Tasks::IO::Xer::XerProjectReader;
742  friend class Aspose::Tasks::IO::Xer::XerRecord;
743  friend class Aspose::Tasks::IO::Xer::XerRelationReader;
744  friend class Aspose::Tasks::IO::Xer::XerResourceRateReader;
745  friend class Aspose::Tasks::IO::Xer::XerRoleWithRates;
746  friend class Aspose::Tasks::IO::Xer::XerTaskReader;
747  friend class Aspose::Tasks::IO::Pwa::InternalApi::ExtendedAttributeValueReader;
748  friend class Aspose::Tasks::IO::Pwa::InternalApi::InternalApiProjectReader;
749  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ExtendedAttributeDefinitionMapper;
750  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectAssignmentsMapper;
751  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectCalendarsMapper;
752  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectResourcesMapper;
753  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectTasksMapper;
754  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectWeekDaysPropertyMapper;
755  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectCalendarGuidPropertyMapper;
756  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::TaskLinkEntityMapper;
757  friend class Aspose::Tasks::IO::Xml::BaselineNodeReader;
758  friend class Aspose::Tasks::IO::Xml::ExtendedAttributeNodeReader;
759  friend class Aspose::Tasks::IO::Xml::ProjectNodeReader;
760  friend class Aspose::Tasks::IO::Xml::ProjectNodeWriter;
761  friend class Aspose::Tasks::IO::Xml::ResourceAssignmentNodeReader;
762  friend class Aspose::Tasks::IO::Xml::ResourceNodeReader;
763  friend class Aspose::Tasks::IO::Xml::TaskLinksNodeReader;
764  friend class Aspose::Tasks::IO::Xml::TaskNodeReader;
765  friend class Aspose::Tasks::IO::Xml::TaskNodeWriter;
766  friend class Aspose::Tasks::IO::Xml::XmlReader;
767  friend class Aspose::Tasks::IO::Xml::XmlWriter;
768  friend class Aspose::Tasks::LinkedTasksChain;
770  friend class Aspose::Tasks::OutlineCodesSynchronizer;
771  friend class Aspose::Tasks::ProjectIntegrityValidator;
772  friend class Aspose::Tasks::ProjectReader;
773  friend class Aspose::Tasks::PrimaveraProjectReader;
774  friend class Aspose::Tasks::ProjectFormatDetector;
775  friend class Aspose::Tasks::AutoRecalculationState;
776  friend class Aspose::Tasks::ProjectState;
777  friend class Aspose::Tasks::DurationCalculator;
778  friend class Aspose::Tasks::EvaluationModeDatesResetter;
779  friend class Aspose::Tasks::TaskPlannerAssignmentManager;
780  friend class Aspose::Tasks::FixedDurationEffortDrivenTaskPlanner;
781  friend class Aspose::Tasks::TaskPlanner;
782  friend class Aspose::Tasks::ManualState;
783  friend class Aspose::Tasks::OutlineNumbersCalculator;
784  friend class Aspose::Tasks::PercentCompleteCalculator;
785  friend class Aspose::Tasks::ProjectCalculatedProperties;
786  friend class Aspose::Tasks::ProjectWorkUpdater;
787  friend class Aspose::Tasks::Recalculation::TaskSplitCalculator;
788  friend class Aspose::Tasks::WbsCalculator;
789  friend class Aspose::Tasks::RecurringTaskBuilder;
791  friend class Aspose::Tasks::RiskAnalysis::MonteCarloIteration;
792  friend class Aspose::Tasks::RiskAnalysis::Reporting::RiskReportBuilder;
793  friend class Aspose::Tasks::Visualization::ApsReportBuilder;
794  friend class Aspose::Tasks::Rollup::DurationExtendedAttributeComparer;
796  friend class Aspose::Tasks::Saving::CsvWriter;
797  friend class Aspose::Tasks::Saving::Excel::OpenXML::XlsxWriter;
798  friend class Aspose::Tasks::Saving::SSWriter;
799  friend class Aspose::Tasks::Saving::GdHtmlWriter;
800  friend class Aspose::Tasks::Saving::HtmlCalendarExceptionTable;
801  friend class Aspose::Tasks::Saving::HtmlCalendarTable;
802  friend class Aspose::Tasks::Saving::HtmlResourceAssignmentBaseLineTable;
803  friend class Aspose::Tasks::Saving::HtmlResourceAssignmentTable;
804  friend class Aspose::Tasks::Saving::HtmlResourceBaseLineTable;
805  friend class Aspose::Tasks::Saving::HtmlResourceExtendedAttributesTable;
806  friend class Aspose::Tasks::Saving::HtmlResourceTable;
807  friend class Aspose::Tasks::Saving::HtmlTaskBaseLineTable;
808  friend class Aspose::Tasks::Saving::HtmlTaskExtendedAttributesTable;
809  friend class Aspose::Tasks::Saving::HtmlTaskTable;
810  friend class Aspose::Tasks::Saving::HtmlUtils;
812  friend class Aspose::Tasks::Saving::HtmlWriter;
813  friend class Aspose::Tasks::Saving::ImageWriter;
814  friend class Aspose::Tasks::Saving::TiffWriter;
815  friend class Aspose::Tasks::Saving::LayoutBuilderFactory;
817  friend class Aspose::Tasks::Saving::MpxResourceModel;
818  friend class Aspose::Tasks::Saving::MpxTaskModel;
819  friend class Aspose::Tasks::Saving::MpxWriter;
820  friend class Aspose::Tasks::Saving::PdfWriter;
821  friend class Aspose::Tasks::Saving::PrimaveraXerWriter;
822  friend class Aspose::Tasks::Saving::XerAssignmentTable;
823  friend class Aspose::Tasks::Saving::XerCalendarTable;
824  friend class Aspose::Tasks::Saving::XerRelationTable;
825  friend class Aspose::Tasks::Saving::XerResourceRatesTable;
826  friend class Aspose::Tasks::Saving::XerResourceTable;
827  friend class Aspose::Tasks::Saving::XerTaskTable;
828  friend class Aspose::Tasks::Saving::XerWBSTable;
829  friend class Aspose::Tasks::Saving::PrimaveraActivityNodeWriter;
830  friend class Aspose::Tasks::Saving::PrimaveraAssignmentNodeWriter;
831  friend class Aspose::Tasks::Saving::PrimaveraP6XmlWriter;
832  friend class Aspose::Tasks::Saving::PrimaveraProjectNodeWriter;
833  friend class Aspose::Tasks::Saving::SaveManager;
834  friend class Aspose::Tasks::Saving::ReportSaveManager;
835  friend class Aspose::Tasks::Saving::SvgWriter;
836  friend class Aspose::Tasks::Saving::TemplateWriter;
837  friend class Aspose::Tasks::Saving::XamlWriter;
838  friend class Aspose::Tasks::Saving::XpsWriter;
839  friend class Aspose::Tasks::Scheduling::CriticalPathAlgorithm;
840  friend class Aspose::Tasks::Scheduling::TopsortCriticalPath;
841  friend class Aspose::Tasks::Scheduling::FromFinishScheduler;
842  friend class Aspose::Tasks::Scheduling::RescheduleAlgorithm;
843  friend class Aspose::Tasks::Scheduling::FromStartScheduler;
844  friend class Aspose::Tasks::Scheduling::TopologicalSort;
845  friend class Aspose::Tasks::TaskBaseline;
846  friend class Aspose::Tasks::TaskCollection;
847  friend class Aspose::Tasks::TaskLink;
849  friend class Aspose::Tasks::TimephasedDataMaker;
850  friend class Aspose::Tasks::Util::CalculatedExtendedAttributeUtils;
851  friend class Aspose::Tasks::Util::CalendarHelper;
852  friend class Aspose::Tasks::Util::ExtendedAttributeChecker;
853  friend class Aspose::Tasks::Util::Fields::ProjectFieldToValue;
854  friend class Aspose::Tasks::Util::PrimaveraTasksProcessor;
855  friend class Aspose::Tasks::Util::TaskIdReEnumerator;
856  friend class Aspose::Tasks::Util::TasksIdTracker;
857  friend class Aspose::Tasks::Validators::TaskValidator;
858  template<typename FT0> friend class Aspose::Tasks::Visualization::ApsBaseChartBuilder;
859  template<typename FT0> friend class Aspose::Tasks::Visualization::ApsLayoutBuilder;
860  friend class Aspose::Tasks::Visualization::ApsGanttChartLayoutBuilder;
861  friend class Aspose::Tasks::Visualization::ApsResourceSheetBuilder;
862  friend class Aspose::Tasks::Visualization::ApsResourceUsageBuilder;
863  friend class Aspose::Tasks::Visualization::ApsReportBestPracticesAnalyzerBuilder;
864  friend class Aspose::Tasks::Visualization::ApsReportBurndownBuilder;
865  friend class Aspose::Tasks::Visualization::ApsReportCashFlowBuilder;
866  friend class Aspose::Tasks::Visualization::ApsReportCostOverrunsBuilder;
867  friend class Aspose::Tasks::Visualization::ApsReportCostOverviewBuilder;
868  friend class Aspose::Tasks::Visualization::ApsReportLateTasksBuilder;
869  friend class Aspose::Tasks::Visualization::ApsReportMilestonesBuilder;
870  friend class Aspose::Tasks::Visualization::ApsReportProjectOverviewBuilder;
871  friend class Aspose::Tasks::Visualization::ApsReportResourceCostOverviewBuilder;
872  friend class Aspose::Tasks::Visualization::ApsReportSlippingTasksBuilder;
873  friend class Aspose::Tasks::Visualization::ApsReportTaskCostOverviewBuilder;
874  friend class Aspose::Tasks::Visualization::ApsReportUpcomingTasksBuilder;
875  friend class Aspose::Tasks::Visualization::ApsReportWorkOverviewBuilder;
876  friend class Aspose::Tasks::Visualization::AssignmentToColumnText;
877  template<typename FT0> friend class Aspose::Tasks::Visualization::FieldToColumnText;
878  friend class Aspose::Tasks::Visualization::HeaderFooterTemplateFieldConverter;
880  friend class Aspose::Tasks::Visualization::ResourceToColumnText;
881  friend class Aspose::Tasks::Visualization::TaskToColumnText;
882 
883 public:
884 
885  /// <summary>
886  /// Gets default view of the project.
887  /// </summary>
888  ASPOSE_TASKS_SHARED_API System::SharedPtr<View> get_DefaultView();
889  /// <summary>
890  /// Sets default view of the project.
891  /// </summary>
892  ASPOSE_TASKS_SHARED_API void set_DefaultView(const System::SharedPtr<View>& value);
893  /// <summary>
894  /// Gets an instance of <see cref="VbaProject"></see> class.
895  /// </summary>
896  ASPOSE_TASKS_SHARED_API const System::SharedPtr<Aspose::Tasks::VbaProject>& get_VbaProject() const;
897  /// <summary>
898  /// Gets an instance of the <see cref="ProjectDisplayOptions"></see> class.
899  /// </summary>
900  ASPOSE_TASKS_SHARED_API System::SharedPtr<ProjectDisplayOptions> get_DisplayOptions() const;
901  /// <summary>
902  /// Gets calculation mode of a project.
903  /// Can be one of the values of <see cref="CalculationMode"></see> enumeration.
904  /// </summary>
905  ASPOSE_TASKS_SHARED_API Aspose::Tasks::CalculationMode get_CalculationMode() const;
906  /// <summary>
907  /// Sets calculation mode of a project.
908  /// Can be one of the values of <see cref="CalculationMode"></see> enumeration.
909  /// </summary>
910  ASPOSE_TASKS_SHARED_API void set_CalculationMode(Aspose::Tasks::CalculationMode value);
911  /// <summary>
912  /// Gets the root of the tree of tasks.
913  /// </summary>
914  ASPOSE_TASKS_SHARED_API const System::SharedPtr<Task>& get_RootTask() const;
915  /// <summary>
916  /// Gets <see cref="TaskLinkCollection"></see> object.
917  /// </summary>
918  ASPOSE_TASKS_SHARED_API const System::SharedPtr<TaskLinkCollection>& get_TaskLinks() const;
919  /// <summary>
920  /// Gets <see cref="CalendarCollection"></see> object of this Project instance.
921  /// </summary>
922  ASPOSE_TASKS_SHARED_API const System::SharedPtr<CalendarCollection>& get_Calendars() const;
923  /// <summary>
924  /// Gets ResourceCollection object.
925  /// </summary>
926  ASPOSE_TASKS_SHARED_API const System::SharedPtr<ResourceCollection>& get_Resources() const;
927  /// <summary>
928  /// Gets OutlineCodeDefinitionCollection object.
929  /// The collection of outline code definitions associated with a project.
930  /// </summary>
931  ASPOSE_TASKS_SHARED_API const System::SharedPtr<OutlineCodeDefinitionCollection>& get_OutlineCodes() const;
932  /// <summary>
933  /// Gets ResourceAssignmentCollection object.
934  /// </summary>
935  ASPOSE_TASKS_SHARED_API const System::SharedPtr<ResourceAssignmentCollection>& get_ResourceAssignments() const;
936  /// <summary>
937  /// Gets the instance of <see cref="WeekDayCollection"></see> class which represents a collection of project default week working days and working times.
938  /// </summary>
939  /// <remarks>The data contains only in mpp files (not in xml).</remarks>
940  /// <returns>The instance of <see cref="WeekDayCollection"></see> class which contains a list of <see cref="WeekDay"></see> objects.</returns>
941  ASPOSE_TASKS_SHARED_API const System::SharedPtr<WeekDayCollection>& get_DefaultWeekWorkingDays() const;
942  /// <summary>
943  /// Gets project's built-in properties collection.
944  /// </summary>
945  ASPOSE_TASKS_SHARED_API const System::SharedPtr<Properties::BuiltInProjectPropertyCollection>& get_BuiltInProps() const;
946  /// <summary>
947  /// Gets project's custom properties collection.
948  /// </summary>
949  ASPOSE_TASKS_SHARED_API const System::SharedPtr<Properties::CustomProjectPropertyCollection>& get_CustomProps() const;
950  /// <summary>
951  /// Gets ExtendedAttributeDefinitionCollection object.
952  /// The collection of extended attribute (custom fields) definitions associated with a project.
953  /// </summary>
954  ASPOSE_TASKS_SHARED_API const System::SharedPtr<ExtendedAttributeDefinitionCollection>& get_ExtendedAttributes() const;
955  /// <summary>
956  /// Gets a collection which contains a list of Critical tasks which comprise Critical Path of this project.
957  /// <remarks>This is an O(n) operation, where n is the number of tasks in the project.</remarks>
958  /// </summary>
959  /// <returns>a collection which represents a list of all critical tasks.</returns>
960  ASPOSE_TASKS_SHARED_API System::SharedPtr<TaskCollection> get_CriticalPath();
961  /// <summary>
962  /// Gets all the task-based filter definitions.
963  /// TaskFilters is a collection of <see cref="Filter"></see> objects.
964  /// </summary>
965  ASPOSE_TASKS_SHARED_API System::SharedPtr<FilterCollection> get_TaskFilters();
966  /// <summary>
967  /// Gets all the resource-based filter definitions.
968  /// ResourceFilters is a collection of <see cref="Filter"></see> objects.
969  /// </summary>
970  ASPOSE_TASKS_SHARED_API System::SharedPtr<FilterCollection> get_ResourceFilters();
971  /// <summary>
972  /// Gets a list of <see cref="View"></see> objects.
973  /// </summary>
974  ASPOSE_TASKS_SHARED_API System::SharedPtr<ViewCollection> get_Views();
975  /// <summary>
976  /// Gets a list of <see cref="Table"></see> objects.
977  /// </summary>
978  ASPOSE_TASKS_SHARED_API System::SharedPtr<TableCollection> get_Tables();
979  /// <summary>
980  /// Gets all the task-based group definitions.
981  /// TaskGroups is a collection of <see cref="Group"></see> objects.
982  /// </summary>
983  ASPOSE_TASKS_SHARED_API System::SharedPtr<GroupCollection> get_TaskGroups();
984  /// <summary>
985  /// Gets all of the resource-based group definitions.
986  /// ResourceGroups is a collection of <see cref="Group"></see> objects.
987  /// </summary>
988  ASPOSE_TASKS_SHARED_API System::SharedPtr<GroupCollection> get_ResourceGroups();
989  /// <summary>
990  /// Gets WBS Code Definition for the project.
991  /// </summary>
992  ASPOSE_TASKS_SHARED_API const System::SharedPtr<Aspose::Tasks::WBSCodeDefinition>& get_WBSCodeDefinition() const;
993  /// <summary>
994  /// Sets WBS Code Definition for the project.
995  /// </summary>
996  ASPOSE_TASKS_SHARED_API void set_WBSCodeDefinition(const System::SharedPtr<Aspose::Tasks::WBSCodeDefinition>& value);
997  /// <summary>
998  /// Gets a collection containing the instances of the <see cref="OleObject"></see> class which are linked or embedded to this project file.
999  /// <remarks>Available for mpp file format only. This collection is read-only except for 'Clear' operation.</remarks>
1000  /// </summary>
1001  ASPOSE_TASKS_SHARED_API System::SharedPtr<OleObjectCollection> get_OleObjects() const;
1002  /// <summary>
1003  /// Gets an object containing Primavera-specific properties for a project read from Primavera file.
1004  /// </summary>
1005  ASPOSE_TASKS_SHARED_API const System::SharedPtr<PrimaveraProjectProperties>& get_PrimaveraProperties() const;
1006  /// <summary>
1007  /// Gets a value indicating whether ActualsInSync is set or not.
1008  /// </summary>
1009  ASPOSE_TASKS_SHARED_API NullableBool get_ActualsInSync();
1010  /// <summary>
1011  /// Sets a value indicating whether ActualsInSync is set or not.
1012  /// </summary>
1013  ASPOSE_TASKS_SHARED_API void set_ActualsInSync(NullableBool value);
1014  /// <summary>
1015  /// Gets a value indicating whether AdminProject is set or not.
1016  /// </summary>
1017  ASPOSE_TASKS_SHARED_API NullableBool get_AdminProject();
1018  /// <summary>
1019  /// Sets a value indicating whether AdminProject is set or not.
1020  /// </summary>
1021  ASPOSE_TASKS_SHARED_API void set_AdminProject(NullableBool value);
1022  /// <summary>
1023  /// Gets a value indicating whether AreEditableActualCosts is set or not.
1024  /// </summary>
1025  ASPOSE_TASKS_SHARED_API NullableBool get_AreEditableActualCosts();
1026  /// <summary>
1027  /// Sets a value indicating whether AreEditableActualCosts is set or not.
1028  /// </summary>
1029  ASPOSE_TASKS_SHARED_API void set_AreEditableActualCosts(NullableBool value);
1030  /// <summary>
1031  /// Gets a value of Author.
1032  /// </summary>
1033  ASPOSE_TASKS_SHARED_API System::String get_Author();
1034  /// <summary>
1035  /// Sets a value of Author.
1036  /// </summary>
1037  ASPOSE_TASKS_SHARED_API void set_Author(const System::String& value);
1038  /// <summary>
1039  /// Gets a value indicating whether AutoAddNewResourcesAndTasks is set or not.
1040  /// </summary>
1041  ASPOSE_TASKS_SHARED_API NullableBool get_AutoAddNewResourcesAndTasks();
1042  /// <summary>
1043  /// Sets a value indicating whether AutoAddNewResourcesAndTasks is set or not.
1044  /// </summary>
1045  ASPOSE_TASKS_SHARED_API void set_AutoAddNewResourcesAndTasks(NullableBool value);
1046  /// <summary>
1047  /// Gets a value indicating whether Autolink is set or not.
1048  /// </summary>
1049  ASPOSE_TASKS_SHARED_API NullableBool get_Autolink();
1050  /// <summary>
1051  /// Sets a value indicating whether Autolink is set or not.
1052  /// </summary>
1053  ASPOSE_TASKS_SHARED_API void set_Autolink(NullableBool value);
1054  /// <summary>
1055  /// Gets a value of BaselineForEarnedValue.
1056  /// </summary>
1057  ASPOSE_TASKS_SHARED_API BaselineType get_BaselineForEarnedValue();
1058  /// <summary>
1059  /// Sets a value of BaselineForEarnedValue.
1060  /// </summary>
1061  ASPOSE_TASKS_SHARED_API void set_BaselineForEarnedValue(BaselineType value);
1062  /// <summary>
1063  /// Gets a value of Calendar.
1064  /// </summary>
1065  ASPOSE_TASKS_SHARED_API System::SharedPtr<Aspose::Tasks::Calendar> get_Calendar();
1066  /// <summary>
1067  /// Sets a value of Calendar.
1068  /// </summary>
1069  ASPOSE_TASKS_SHARED_API void set_Calendar(const System::SharedPtr<Aspose::Tasks::Calendar>& value);
1070  /// <summary>
1071  /// Gets a value of Category.
1072  /// </summary>
1073  ASPOSE_TASKS_SHARED_API System::String get_Category();
1074  /// <summary>
1075  /// Sets a value of Category.
1076  /// </summary>
1077  ASPOSE_TASKS_SHARED_API void set_Category(const System::String& value);
1078  /// <summary>
1079  /// Gets a value of Comments.
1080  /// </summary>
1081  ASPOSE_TASKS_SHARED_API System::String get_Comments();
1082  /// <summary>
1083  /// Sets a value of Comments.
1084  /// </summary>
1085  ASPOSE_TASKS_SHARED_API void set_Comments(const System::String& value);
1086  /// <summary>
1087  /// Gets a value of Company.
1088  /// </summary>
1089  ASPOSE_TASKS_SHARED_API System::String get_Company();
1090  /// <summary>
1091  /// Sets a value of Company.
1092  /// </summary>
1093  ASPOSE_TASKS_SHARED_API void set_Company(const System::String& value);
1094  /// <summary>
1095  /// Gets a value of CreationDate.
1096  /// </summary>
1097  ASPOSE_TASKS_SHARED_API System::DateTime get_CreationDate();
1098  /// <summary>
1099  /// Sets a value of CreationDate.
1100  /// </summary>
1101  ASPOSE_TASKS_SHARED_API void set_CreationDate(System::DateTime value);
1102  /// <summary>
1103  /// Gets a value of CriticalSlackLimit.
1104  /// </summary>
1105  ASPOSE_TASKS_SHARED_API int32_t get_CriticalSlackLimit();
1106  /// <summary>
1107  /// Sets a value of CriticalSlackLimit.
1108  /// </summary>
1109  ASPOSE_TASKS_SHARED_API void set_CriticalSlackLimit(int32_t value);
1110  /// <summary>
1111  /// Gets a value of CurrencyCode.
1112  /// </summary>
1113  ASPOSE_TASKS_SHARED_API System::String get_CurrencyCode();
1114  /// <summary>
1115  /// Sets a value of CurrencyCode.
1116  /// </summary>
1117  ASPOSE_TASKS_SHARED_API void set_CurrencyCode(const System::String& value);
1118  /// <summary>
1119  /// Gets a value of CurrencyDigits.
1120  /// </summary>
1121  ASPOSE_TASKS_SHARED_API int32_t get_CurrencyDigits();
1122  /// <summary>
1123  /// Sets a value of CurrencyDigits.
1124  /// </summary>
1125  ASPOSE_TASKS_SHARED_API void set_CurrencyDigits(int32_t value);
1126  /// <summary>
1127  /// Gets a value of CurrencySymbol.
1128  /// </summary>
1129  ASPOSE_TASKS_SHARED_API System::String get_CurrencySymbol();
1130  /// <summary>
1131  /// Sets a value of CurrencySymbol.
1132  /// </summary>
1133  ASPOSE_TASKS_SHARED_API void set_CurrencySymbol(const System::String& value);
1134  /// <summary>
1135  /// Gets a value of CurrencySymbolPosition.
1136  /// </summary>
1137  ASPOSE_TASKS_SHARED_API CurrencySymbolPositionType get_CurrencySymbolPosition();
1138  /// <summary>
1139  /// Sets a value of CurrencySymbolPosition.
1140  /// </summary>
1141  ASPOSE_TASKS_SHARED_API void set_CurrencySymbolPosition(CurrencySymbolPositionType value);
1142  /// <summary>
1143  /// Gets a value of CurrentDate.
1144  /// </summary>
1145  ASPOSE_TASKS_SHARED_API System::DateTime get_CurrentDate();
1146  /// <summary>
1147  /// Sets a value of CurrentDate.
1148  /// </summary>
1149  ASPOSE_TASKS_SHARED_API void set_CurrentDate(System::DateTime value);
1150  /// <summary>
1151  /// Gets a value of DateFormat.
1152  /// </summary>
1153  ASPOSE_TASKS_SHARED_API Aspose::Tasks::DateFormat get_DateFormat();
1154  /// <summary>
1155  /// Sets a value of DateFormat.
1156  /// </summary>
1157  ASPOSE_TASKS_SHARED_API void set_DateFormat(Aspose::Tasks::DateFormat value);
1158  /// <summary>
1159  /// Gets a value of CustomDateFormat.
1160  /// </summary>
1161  ASPOSE_TASKS_SHARED_API System::String get_CustomDateFormat();
1162  /// <summary>
1163  /// Sets a value of CustomDateFormat.
1164  /// </summary>
1165  ASPOSE_TASKS_SHARED_API void set_CustomDateFormat(const System::String& value);
1166  /// <summary>
1167  /// Gets a value of DaysPerMonth.
1168  /// </summary>
1169  ASPOSE_TASKS_SHARED_API int32_t get_DaysPerMonth();
1170  /// <summary>
1171  /// Sets a value of DaysPerMonth.
1172  /// </summary>
1173  ASPOSE_TASKS_SHARED_API void set_DaysPerMonth(int32_t value);
1174  /// <summary>
1175  /// Gets a value of DefaultFinishTime.
1176  /// </summary>
1177  ASPOSE_TASKS_SHARED_API System::DateTime get_DefaultFinishTime();
1178  /// <summary>
1179  /// Sets a value of DefaultFinishTime.
1180  /// </summary>
1181  ASPOSE_TASKS_SHARED_API void set_DefaultFinishTime(System::DateTime value);
1182  /// <summary>
1183  /// Gets a value of DefaultFixedCostAccrual.
1184  /// </summary>
1185  ASPOSE_TASKS_SHARED_API CostAccrualType get_DefaultFixedCostAccrual();
1186  /// <summary>
1187  /// Sets a value of DefaultFixedCostAccrual.
1188  /// </summary>
1189  ASPOSE_TASKS_SHARED_API void set_DefaultFixedCostAccrual(CostAccrualType value);
1190  /// <summary>
1191  /// Gets a value of DefaultOvertimeRate.
1192  /// </summary>
1193  ASPOSE_TASKS_SHARED_API double get_DefaultOvertimeRate();
1194  /// <summary>
1195  /// Sets a value of DefaultOvertimeRate.
1196  /// </summary>
1197  ASPOSE_TASKS_SHARED_API void set_DefaultOvertimeRate(double value);
1198  /// <summary>
1199  /// Gets a value of DefaultStandardRate.
1200  /// </summary>
1201  ASPOSE_TASKS_SHARED_API double get_DefaultStandardRate();
1202  /// <summary>
1203  /// Sets a value of DefaultStandardRate.
1204  /// </summary>
1205  ASPOSE_TASKS_SHARED_API void set_DefaultStandardRate(double value);
1206  /// <summary>
1207  /// Gets a value of DefaultStartTime.
1208  /// </summary>
1209  ASPOSE_TASKS_SHARED_API System::DateTime get_DefaultStartTime();
1210  /// <summary>
1211  /// Sets a value of DefaultStartTime.
1212  /// </summary>
1213  ASPOSE_TASKS_SHARED_API void set_DefaultStartTime(System::DateTime value);
1214  /// <summary>
1215  /// Gets a value of DefaultTaskEVMethod.
1216  /// </summary>
1217  ASPOSE_TASKS_SHARED_API EarnedValueMethodType get_DefaultTaskEVMethod();
1218  /// <summary>
1219  /// Sets a value of DefaultTaskEVMethod.
1220  /// </summary>
1221  ASPOSE_TASKS_SHARED_API void set_DefaultTaskEVMethod(EarnedValueMethodType value);
1222  /// <summary>
1223  /// Gets a value of DefaultTaskType.
1224  /// </summary>
1225  ASPOSE_TASKS_SHARED_API TaskType get_DefaultTaskType();
1226  /// <summary>
1227  /// Sets a value of DefaultTaskType.
1228  /// </summary>
1229  ASPOSE_TASKS_SHARED_API void set_DefaultTaskType(TaskType value);
1230  /// <summary>
1231  /// Gets a value of DurationFormat.
1232  /// </summary>
1233  ASPOSE_TASKS_SHARED_API TimeUnitType get_DurationFormat();
1234  /// <summary>
1235  /// Sets a value of DurationFormat.
1236  /// </summary>
1237  ASPOSE_TASKS_SHARED_API void set_DurationFormat(TimeUnitType value);
1238  /// <summary>
1239  /// Gets a value of EarnedValueMethod.
1240  /// </summary>
1241  ASPOSE_TASKS_SHARED_API EarnedValueMethodType get_EarnedValueMethod();
1242  /// <summary>
1243  /// Sets a value of EarnedValueMethod.
1244  /// </summary>
1245  ASPOSE_TASKS_SHARED_API void set_EarnedValueMethod(EarnedValueMethodType value);
1246  /// <summary>
1247  /// Gets a value of ExtendedCreationDate.
1248  /// </summary>
1249  ASPOSE_TASKS_SHARED_API System::DateTime get_ExtendedCreationDate();
1250  /// <summary>
1251  /// Sets a value of ExtendedCreationDate.
1252  /// </summary>
1253  ASPOSE_TASKS_SHARED_API void set_ExtendedCreationDate(System::DateTime value);
1254  /// <summary>
1255  /// Gets a value of FinishDate.
1256  /// </summary>
1257  ASPOSE_TASKS_SHARED_API System::DateTime get_FinishDate();
1258  /// <summary>
1259  /// Sets a value of FinishDate.
1260  /// </summary>
1261  ASPOSE_TASKS_SHARED_API void set_FinishDate(System::DateTime value);
1262  /// <summary>
1263  /// Gets a value indicating whether FiscalYearStart is set or not.
1264  /// </summary>
1265  ASPOSE_TASKS_SHARED_API NullableBool get_FiscalYearStart();
1266  /// <summary>
1267  /// Sets a value indicating whether FiscalYearStart is set or not.
1268  /// </summary>
1269  ASPOSE_TASKS_SHARED_API void set_FiscalYearStart(NullableBool value);
1270  /// <summary>
1271  /// Gets a value of FyStartDate.
1272  /// </summary>
1273  ASPOSE_TASKS_SHARED_API Month get_FyStartDate();
1274  /// <summary>
1275  /// Sets a value of FyStartDate.
1276  /// </summary>
1277  ASPOSE_TASKS_SHARED_API void set_FyStartDate(Month value);
1278  /// <summary>
1279  /// Gets a value indicating whether HonorConstraints is set or not.
1280  /// </summary>
1281  ASPOSE_TASKS_SHARED_API NullableBool get_HonorConstraints();
1282  /// <summary>
1283  /// Sets a value indicating whether HonorConstraints is set or not.
1284  /// </summary>
1285  ASPOSE_TASKS_SHARED_API void set_HonorConstraints(NullableBool value);
1286  /// <summary>
1287  /// Gets a value of HyperlinkBase.
1288  /// </summary>
1289  ASPOSE_TASKS_SHARED_API System::String get_HyperlinkBase();
1290  /// <summary>
1291  /// Sets a value of HyperlinkBase.
1292  /// </summary>
1293  ASPOSE_TASKS_SHARED_API void set_HyperlinkBase(const System::String& value);
1294  /// <summary>
1295  /// Gets a value indicating whether InsertedProjectsLikeSummary is set or not.
1296  /// </summary>
1297  ASPOSE_TASKS_SHARED_API NullableBool get_InsertedProjectsLikeSummary();
1298  /// <summary>
1299  /// Sets a value indicating whether InsertedProjectsLikeSummary is set or not.
1300  /// </summary>
1301  ASPOSE_TASKS_SHARED_API void set_InsertedProjectsLikeSummary(NullableBool value);
1302  /// <summary>
1303  /// Gets a value indicating whether KeepTaskOnNearestWorkingTimeWhenMadeAutoScheduled is set or not.
1304  /// </summary>
1305  ASPOSE_TASKS_SHARED_API NullableBool get_KeepTaskOnNearestWorkingTimeWhenMadeAutoScheduled();
1306  /// <summary>
1307  /// Sets a value indicating whether KeepTaskOnNearestWorkingTimeWhenMadeAutoScheduled is set or not.
1308  /// </summary>
1309  ASPOSE_TASKS_SHARED_API void set_KeepTaskOnNearestWorkingTimeWhenMadeAutoScheduled(NullableBool value);
1310  /// <summary>
1311  /// Gets a value of Keywords.
1312  /// </summary>
1313  ASPOSE_TASKS_SHARED_API System::String get_Keywords();
1314  /// <summary>
1315  /// Sets a value of Keywords.
1316  /// </summary>
1317  ASPOSE_TASKS_SHARED_API void set_Keywords(const System::String& value);
1318  /// <summary>
1319  /// Gets a value of LastAuthor.
1320  /// </summary>
1321  ASPOSE_TASKS_SHARED_API System::String get_LastAuthor();
1322  /// <summary>
1323  /// Sets a value of LastAuthor.
1324  /// </summary>
1325  ASPOSE_TASKS_SHARED_API void set_LastAuthor(const System::String& value);
1326  /// <summary>
1327  /// Gets a value of LastPrinted.
1328  /// </summary>
1329  ASPOSE_TASKS_SHARED_API System::DateTime get_LastPrinted();
1330  /// <summary>
1331  /// Sets a value of LastPrinted.
1332  /// </summary>
1333  ASPOSE_TASKS_SHARED_API void set_LastPrinted(System::DateTime value);
1334  /// <summary>
1335  /// Gets a value of LastSaved.
1336  /// </summary>
1337  ASPOSE_TASKS_SHARED_API System::DateTime get_LastSaved();
1338  /// <summary>
1339  /// Sets a value of LastSaved.
1340  /// </summary>
1341  ASPOSE_TASKS_SHARED_API void set_LastSaved(System::DateTime value);
1342  /// <summary>
1343  /// Gets a value of Manager.
1344  /// </summary>
1345  ASPOSE_TASKS_SHARED_API System::String get_Manager();
1346  /// <summary>
1347  /// Sets a value of Manager.
1348  /// </summary>
1349  ASPOSE_TASKS_SHARED_API void set_Manager(const System::String& value);
1350  /// <summary>
1351  /// Gets a value indicating whether MicrosoftProjectServerURL is set or not.
1352  /// </summary>
1353  ASPOSE_TASKS_SHARED_API NullableBool get_MicrosoftProjectServerURL();
1354  /// <summary>
1355  /// Sets a value indicating whether MicrosoftProjectServerURL is set or not.
1356  /// </summary>
1357  ASPOSE_TASKS_SHARED_API void set_MicrosoftProjectServerURL(NullableBool value);
1358  /// <summary>
1359  /// Gets a value of MinutesPerDay.
1360  /// </summary>
1361  ASPOSE_TASKS_SHARED_API int32_t get_MinutesPerDay();
1362  /// <summary>
1363  /// Sets a value of MinutesPerDay.
1364  /// </summary>
1365  ASPOSE_TASKS_SHARED_API void set_MinutesPerDay(int32_t value);
1366  /// <summary>
1367  /// Gets a value of MinutesPerWeek.
1368  /// </summary>
1369  ASPOSE_TASKS_SHARED_API int32_t get_MinutesPerWeek();
1370  /// <summary>
1371  /// Sets a value of MinutesPerWeek.
1372  /// </summary>
1373  ASPOSE_TASKS_SHARED_API void set_MinutesPerWeek(int32_t value);
1374  /// <summary>
1375  /// Gets a value indicating whether MoveCompletedEndsBack is set or not.
1376  /// </summary>
1377  ASPOSE_TASKS_SHARED_API NullableBool get_MoveCompletedEndsBack();
1378  /// <summary>
1379  /// Sets a value indicating whether MoveCompletedEndsBack is set or not.
1380  /// </summary>
1381  ASPOSE_TASKS_SHARED_API void set_MoveCompletedEndsBack(NullableBool value);
1382  /// <summary>
1383  /// Gets a value indicating whether MoveCompletedEndsForward is set or not.
1384  /// </summary>
1385  ASPOSE_TASKS_SHARED_API NullableBool get_MoveCompletedEndsForward();
1386  /// <summary>
1387  /// Sets a value indicating whether MoveCompletedEndsForward is set or not.
1388  /// </summary>
1389  ASPOSE_TASKS_SHARED_API void set_MoveCompletedEndsForward(NullableBool value);
1390  /// <summary>
1391  /// Gets a value indicating whether MoveRemainingStartsBack is set or not.
1392  /// </summary>
1393  ASPOSE_TASKS_SHARED_API NullableBool get_MoveRemainingStartsBack();
1394  /// <summary>
1395  /// Sets a value indicating whether MoveRemainingStartsBack is set or not.
1396  /// </summary>
1397  ASPOSE_TASKS_SHARED_API void set_MoveRemainingStartsBack(NullableBool value);
1398  /// <summary>
1399  /// Gets a value indicating whether MoveRemainingStartsForward is set or not.
1400  /// </summary>
1401  ASPOSE_TASKS_SHARED_API NullableBool get_MoveRemainingStartsForward();
1402  /// <summary>
1403  /// Sets a value indicating whether MoveRemainingStartsForward is set or not.
1404  /// </summary>
1405  ASPOSE_TASKS_SHARED_API void set_MoveRemainingStartsForward(NullableBool value);
1406  /// <summary>
1407  /// Gets a value indicating whether MultipleCriticalPaths is set or not.
1408  /// </summary>
1409  ASPOSE_TASKS_SHARED_API NullableBool get_MultipleCriticalPaths();
1410  /// <summary>
1411  /// Sets a value indicating whether MultipleCriticalPaths is set or not.
1412  /// </summary>
1413  ASPOSE_TASKS_SHARED_API void set_MultipleCriticalPaths(NullableBool value);
1414  /// <summary>
1415  /// Gets a value of Name.
1416  /// </summary>
1417  ASPOSE_TASKS_SHARED_API System::String get_Name();
1418  /// <summary>
1419  /// Sets a value of Name.
1420  /// </summary>
1421  ASPOSE_TASKS_SHARED_API void set_Name(const System::String& value);
1422  /// <summary>
1423  /// Gets a value indicating whether NewTasksAreManual is set or not.
1424  /// </summary>
1425  ASPOSE_TASKS_SHARED_API NullableBool get_NewTasksAreManual();
1426  /// <summary>
1427  /// Sets a value indicating whether NewTasksAreManual is set or not.
1428  /// </summary>
1429  ASPOSE_TASKS_SHARED_API void set_NewTasksAreManual(NullableBool value);
1430  /// <summary>
1431  /// Gets a value indicating whether NewTasksEffortDriven is set or not.
1432  /// </summary>
1433  ASPOSE_TASKS_SHARED_API NullableBool get_NewTasksEffortDriven();
1434  /// <summary>
1435  /// Sets a value indicating whether NewTasksEffortDriven is set or not.
1436  /// </summary>
1437  ASPOSE_TASKS_SHARED_API void set_NewTasksEffortDriven(NullableBool value);
1438  /// <summary>
1439  /// Gets a value indicating whether NewTasksEstimated is set or not.
1440  /// </summary>
1441  ASPOSE_TASKS_SHARED_API NullableBool get_NewTasksEstimated();
1442  /// <summary>
1443  /// Sets a value indicating whether NewTasksEstimated is set or not.
1444  /// </summary>
1445  ASPOSE_TASKS_SHARED_API void set_NewTasksEstimated(NullableBool value);
1446  /// <summary>
1447  /// Gets a value of NewTaskStartDate.
1448  /// </summary>
1449  ASPOSE_TASKS_SHARED_API TaskStartDateType get_NewTaskStartDate();
1450  /// <summary>
1451  /// Sets a value of NewTaskStartDate.
1452  /// </summary>
1453  ASPOSE_TASKS_SHARED_API void set_NewTaskStartDate(TaskStartDateType value);
1454  /// <summary>
1455  /// Gets a value indicating whether ProjectExternallyEdited is set or not.
1456  /// </summary>
1457  ASPOSE_TASKS_SHARED_API NullableBool get_ProjectExternallyEdited();
1458  /// <summary>
1459  /// Sets a value indicating whether ProjectExternallyEdited is set or not.
1460  /// </summary>
1461  ASPOSE_TASKS_SHARED_API void set_ProjectExternallyEdited(NullableBool value);
1462  /// <summary>
1463  /// Gets a value indicating whether RemoveFileProperties is set or not.
1464  /// </summary>
1465  ASPOSE_TASKS_SHARED_API NullableBool get_RemoveFileProperties();
1466  /// <summary>
1467  /// Sets a value indicating whether RemoveFileProperties is set or not.
1468  /// </summary>
1469  ASPOSE_TASKS_SHARED_API void set_RemoveFileProperties(NullableBool value);
1470  /// <summary>
1471  /// Gets a value of Revision.
1472  /// </summary>
1473  ASPOSE_TASKS_SHARED_API int32_t get_Revision();
1474  /// <summary>
1475  /// Sets a value of Revision.
1476  /// </summary>
1477  ASPOSE_TASKS_SHARED_API void set_Revision(int32_t value);
1478  /// <summary>
1479  /// Gets a value of SaveVersion.
1480  /// </summary>
1481  ASPOSE_TASKS_SHARED_API int32_t get_SaveVersion();
1482  /// <summary>
1483  /// Sets a value of SaveVersion.
1484  /// </summary>
1485  ASPOSE_TASKS_SHARED_API void set_SaveVersion(int32_t value);
1486  /// <summary>
1487  /// Gets a value indicating whether ScheduleFromStart is set or not.
1488  /// </summary>
1489  ASPOSE_TASKS_SHARED_API NullableBool get_ScheduleFromStart();
1490  /// <summary>
1491  /// Sets a value indicating whether ScheduleFromStart is set or not.
1492  /// </summary>
1493  ASPOSE_TASKS_SHARED_API void set_ScheduleFromStart(NullableBool value);
1494  /// <summary>
1495  /// Gets a value indicating whether ShowProjectSummaryTask is set or not.
1496  /// </summary>
1497  ASPOSE_TASKS_SHARED_API bool get_ShowProjectSummaryTask();
1498  /// <summary>
1499  /// Sets a value indicating whether ShowProjectSummaryTask is set or not.
1500  /// </summary>
1501  ASPOSE_TASKS_SHARED_API void set_ShowProjectSummaryTask(bool value);
1502  /// <summary>
1503  /// Gets a value indicating whether SplitsInProgressTasks is set or not.
1504  /// </summary>
1505  ASPOSE_TASKS_SHARED_API NullableBool get_SplitsInProgressTasks();
1506  /// <summary>
1507  /// Sets a value indicating whether SplitsInProgressTasks is set or not.
1508  /// </summary>
1509  ASPOSE_TASKS_SHARED_API void set_SplitsInProgressTasks(NullableBool value);
1510  /// <summary>
1511  /// Gets a value indicating whether SpreadActualCost is set or not.
1512  /// </summary>
1513  ASPOSE_TASKS_SHARED_API NullableBool get_SpreadActualCost();
1514  /// <summary>
1515  /// Sets a value indicating whether SpreadActualCost is set or not.
1516  /// </summary>
1517  ASPOSE_TASKS_SHARED_API void set_SpreadActualCost(NullableBool value);
1518  /// <summary>
1519  /// Gets a value indicating whether SpreadPercentComplete is set or not.
1520  /// </summary>
1521  ASPOSE_TASKS_SHARED_API NullableBool get_SpreadPercentComplete();
1522  /// <summary>
1523  /// Sets a value indicating whether SpreadPercentComplete is set or not.
1524  /// </summary>
1525  ASPOSE_TASKS_SHARED_API void set_SpreadPercentComplete(NullableBool value);
1526  /// <summary>
1527  /// Gets a value of StartDate.
1528  /// </summary>
1529  ASPOSE_TASKS_SHARED_API System::DateTime get_StartDate();
1530  /// <summary>
1531  /// Sets a value of StartDate.
1532  /// </summary>
1533  ASPOSE_TASKS_SHARED_API void set_StartDate(System::DateTime value);
1534  /// <summary>
1535  /// Gets a value of StatusDate.
1536  /// </summary>
1537  ASPOSE_TASKS_SHARED_API System::DateTime get_StatusDate();
1538  /// <summary>
1539  /// Sets a value of StatusDate.
1540  /// </summary>
1541  ASPOSE_TASKS_SHARED_API void set_StatusDate(System::DateTime value);
1542  /// <summary>
1543  /// Gets a value of Subject.
1544  /// </summary>
1545  ASPOSE_TASKS_SHARED_API System::String get_Subject();
1546  /// <summary>
1547  /// Sets a value of Subject.
1548  /// </summary>
1549  ASPOSE_TASKS_SHARED_API void set_Subject(const System::String& value);
1550  /// <summary>
1551  /// Gets a value indicating whether TaskUpdatesResource is set or not.
1552  /// </summary>
1553  ASPOSE_TASKS_SHARED_API NullableBool get_TaskUpdatesResource();
1554  /// <summary>
1555  /// Sets a value indicating whether TaskUpdatesResource is set or not.
1556  /// </summary>
1557  ASPOSE_TASKS_SHARED_API void set_TaskUpdatesResource(NullableBool value);
1558  /// <summary>
1559  /// Gets a value of Template.
1560  /// </summary>
1561  ASPOSE_TASKS_SHARED_API System::String get_Template();
1562  /// <summary>
1563  /// Sets a value of Template.
1564  /// </summary>
1565  ASPOSE_TASKS_SHARED_API void set_Template(const System::String& value);
1566  /// <summary>
1567  /// Gets a value of TimescaleFinish.
1568  /// </summary>
1569  ASPOSE_TASKS_SHARED_API System::DateTime get_TimescaleFinish();
1570  /// <summary>
1571  /// Sets a value of TimescaleFinish.
1572  /// </summary>
1573  ASPOSE_TASKS_SHARED_API void set_TimescaleFinish(System::DateTime value);
1574  /// <summary>
1575  /// Gets a value of TimescaleStart.
1576  /// </summary>
1577  ASPOSE_TASKS_SHARED_API System::DateTime get_TimescaleStart();
1578  /// <summary>
1579  /// Sets a value of TimescaleStart.
1580  /// </summary>
1581  ASPOSE_TASKS_SHARED_API void set_TimescaleStart(System::DateTime value);
1582  /// <summary>
1583  /// Gets a value of Title.
1584  /// </summary>
1585  ASPOSE_TASKS_SHARED_API System::String get_Title();
1586  /// <summary>
1587  /// Sets a value of Title.
1588  /// </summary>
1589  ASPOSE_TASKS_SHARED_API void set_Title(const System::String& value);
1590  /// <summary>
1591  /// Gets a value of Uid.
1592  /// </summary>
1593  ASPOSE_TASKS_SHARED_API System::String get_Uid();
1594  /// <summary>
1595  /// Sets a value of Uid.
1596  /// </summary>
1597  ASPOSE_TASKS_SHARED_API void set_Uid(const System::String& value);
1598  /// <summary>
1599  /// Gets a value indicating whether UpdateManuallyScheduledTasksWhenEditingLinks is set or not.
1600  /// </summary>
1601  ASPOSE_TASKS_SHARED_API NullableBool get_UpdateManuallyScheduledTasksWhenEditingLinks();
1602  /// <summary>
1603  /// Sets a value indicating whether UpdateManuallyScheduledTasksWhenEditingLinks is set or not.
1604  /// </summary>
1605  ASPOSE_TASKS_SHARED_API void set_UpdateManuallyScheduledTasksWhenEditingLinks(NullableBool value);
1606  /// <summary>
1607  /// Gets a value of WeekStartDay.
1608  /// </summary>
1609  ASPOSE_TASKS_SHARED_API DayType get_WeekStartDay();
1610  /// <summary>
1611  /// Sets a value of WeekStartDay.
1612  /// </summary>
1613  ASPOSE_TASKS_SHARED_API void set_WeekStartDay(DayType value);
1614  /// <summary>
1615  /// Gets a value of WorkFormat.
1616  /// </summary>
1617  ASPOSE_TASKS_SHARED_API TimeUnitType get_WorkFormat();
1618  /// <summary>
1619  /// Sets a value of WorkFormat.
1620  /// </summary>
1621  ASPOSE_TASKS_SHARED_API void set_WorkFormat(TimeUnitType value);
1622  /// <summary>
1623  /// Gets a value of Guid.
1624  /// </summary>
1625  ASPOSE_TASKS_SHARED_API System::Guid get_Guid();
1626  /// <summary>
1627  /// Sets a value of Guid.
1628  /// </summary>
1629  ASPOSE_TASKS_SHARED_API void set_Guid(System::Guid value);
1630  /// <summary>
1631  /// Gets whether assignment cost and remaining cost should be auto calculated using assignment's work and resource rates.
1632  /// </summary>
1633  ASPOSE_TASKS_SHARED_API bool get_AutoCalculateAssignmentCosts();
1634  /// <summary>
1635  /// Sets whether assignment cost and remaining cost should be auto calculated using assignment's work and resource rates.
1636  /// </summary>
1637  ASPOSE_TASKS_SHARED_API void set_AutoCalculateAssignmentCosts(bool value);
1638 
1639  /// <summary>
1640  /// Initializes a new instance of the <see cref="Project"></see> class.
1641  /// </summary>
1642  ASPOSE_TASKS_SHARED_API Project();
1643  /// <summary>
1644  /// Initializes a new instance of the <see cref="Project"></see> class from a password protected template (existent mpp or mpt file).
1645  /// </summary>
1646  /// <param name="projectTemplate">Path to template to create project from.</param>
1647  /// <param name="protectionPassword">Protection password.</param>
1648  /// <remarks>Reading password protected files currently supported for MSP 2003 file format only.</remarks>
1649  ASPOSE_TASKS_SHARED_API Project(const System::String& projectTemplate, const System::String& protectionPassword);
1650  /// <summary>
1651  /// Initializes a new instance of the <see cref="Project"></see> class from a template (existent mpp or mpt file).
1652  /// </summary>
1653  /// <param name="projectTemplate">Path to template to create project from.</param>
1654  ASPOSE_TASKS_SHARED_API Project(const System::String& projectTemplate);
1655  /// <summary>
1656  /// Initializes a new instance of the <see cref="Project"></see> class from the Stream
1657  /// with the specified instance of the <see cref="PrimaveraReadOptions"></see> class.
1658  /// </summary>
1659  /// <param name="stream">Stream of the Project <see cref="System::IO::Stream"></see>class</param>
1660  /// <param name="options">the specified instance of the <see cref="PrimaveraReadOptions"></see>class which allows to customize reading of Primavera formats (XER or XML).</param>
1661  ASPOSE_TASKS_SHARED_API Project(const System::SharedPtr<System::IO::Stream>& stream, const System::SharedPtr<PrimaveraReadOptions>& options);
1662  /// <summary>
1663  /// Initializes a new instance of the <see cref="Project"></see> class from a template (existent mpp or mpt file).
1664  /// </summary>
1665  /// <param name="projectTemplate">Path to template to create project from.</param>
1666  /// <param name="parseErrorHandler">the specified callback method to handle xml parse errors.</param>
1667  ASPOSE_TASKS_SHARED_API Project(const System::String& projectTemplate, ParseErrorCallback parseErrorHandler);
1668  /// <summary>
1669  /// Initializes a new instance of the <see cref="Project"></see> class from a stream.
1670  /// </summary>
1671  /// <param name="stream">Stream to load a template from.</param>
1672  ASPOSE_TASKS_SHARED_API Project(const System::SharedPtr<System::IO::Stream>& stream);
1673  /// <summary>
1674  /// Initializes a new instance of the <see cref="Project"></see> class from a StreamReader instance.
1675  /// </summary>
1676  /// <param name="reader">The stream reader where to load a template from.</param>
1677  ASPOSE_TASKS_SHARED_API Project(const System::SharedPtr<System::IO::StreamReader>& reader);
1678  /// <summary>
1679  /// Initializes a new instance of the <see cref="Project"></see> class from a template (existent MPP or MPT file)
1680  /// with the specified instance of the <see cref="PrimaveraReadOptions"></see> class.
1681  /// </summary>
1682  /// <param name="projectTemplate">Path to template to create project from</param>
1683  /// <param name="options">the specified instance of the <see cref="PrimaveraReadOptions"></see> class.</param>
1684  ASPOSE_TASKS_SHARED_API Project(const System::String& projectTemplate, const System::SharedPtr<PrimaveraReadOptions>& options);
1685  /// <summary>
1686  /// Initializes a new instance of the <see cref="Project"></see> class to read data from a database which is specified by the instance of the <see cref="DbSettings"></see> class.
1687  /// </summary>
1688  /// <param name="settings">the specified instance of the <see cref="DbSettings"></see> class.</param>
1689  ASPOSE_TASKS_SHARED_API Project(const System::SharedPtr<Connectivity::DbSettings>& settings);
1690  /// <summary>
1691  /// Initializes a new instance of the <see cref="Project"></see> class from a template(existent mpp or mpt file).
1692  /// </summary>
1693  /// <param name="stream">Stream to load a template from.</param>
1694  /// <param name="parseErrorHandler">the specified callback method to handle xml parse errors.</param>
1695  ASPOSE_TASKS_SHARED_API Project(const System::SharedPtr<System::IO::Stream>& stream, ParseErrorCallback parseErrorHandler);
1696  /// <summary>
1697  /// Initializes a new instance of the <see cref="Project"></see> class from a template(existent mpp or mpt file).
1698  /// </summary>
1699  /// <param name="stream">Stream to load a template from.</param>
1700  /// <param name="protectionPassword">Protection password.</param>
1701  /// <remarks>Reading password protected files currently supported for MSP 2003 file format only.</remarks>
1702  ASPOSE_TASKS_SHARED_API Project(const System::SharedPtr<System::IO::Stream>& stream, const System::String& protectionPassword);
1703  /// <summary>
1704  /// Initializes a new instance of the <see cref="Project"></see> class from a template (existent mpp or mpt file)
1705  /// with the specified instance of the <see cref="LoadOptions"></see> class.
1706  /// </summary>
1707  /// <param name="projectTemplate">Path to template to create project from</param>
1708  /// <param name="options">the specified instance of the <see cref="LoadOptions"></see> class.</param>
1709  ASPOSE_TASKS_SHARED_API Project(const System::String& projectTemplate, const System::SharedPtr<LoadOptions>& options);
1710  /// <summary>
1711  /// Initializes a new instance of the <see cref="Project"></see> class from the Stream
1712  /// with the specified instance of the <see cref="LoadOptions"></see> class.
1713  /// </summary>
1714  /// <param name="stream">Stream of the Project <see cref="System::IO::Stream"></see>class</param>
1715  /// <param name="options">the specified instance of the <see cref="LoadOptions"></see>class</param>
1716  ASPOSE_TASKS_SHARED_API Project(const System::SharedPtr<System::IO::Stream>& stream, const System::SharedPtr<LoadOptions>& options);
1717 
1718  /// <summary>
1719  /// Recursively collects all child tasks of the root task.
1720  /// </summary>
1721  /// <returns>The collection of tasks.</returns>
1722  ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<Task>>> SelectAllChildTasks();
1723  /// <summary>
1724  /// Recursively enumerates all project's tasks including root task.
1725  /// </summary>
1726  /// <returns>IEnumerable which can be used to iterate over all project's tasks.</returns>
1727  /// <remarks>Provides a more lightweight way to iterate over tasks compared to <see cref="SelectAllChildTasks"></see> method as it does not allocate memory for all tasks.</remarks>
1728  ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<Task>>> EnumerateAllChildTasks();
1729  /// <summary>
1730  /// Read project file info from the file.
1731  /// </summary>
1732  /// <param name="filename">The project filename.</param>
1733  /// <returns>The project file info <see cref="Aspose::Tasks::ProjectFileInfo"></see>.</returns>
1734  static ASPOSE_TASKS_SHARED_API System::SharedPtr<ProjectFileInfo> GetProjectFileInfo(const System::String& filename);
1735  /// <summary>
1736  /// Gets project file info from the stream.
1737  /// </summary>
1738  /// <param name="stream">The data stream.</param>
1739  /// <returns>The project file info <see cref="Aspose::Tasks::ProjectFileInfo"></see>.</returns>
1740  static ASPOSE_TASKS_SHARED_API System::SharedPtr<ProjectFileInfo> GetProjectFileInfo(const System::SharedPtr<System::IO::Stream>& stream);
1741  /// <summary>
1742  /// Returns a collection of task links which are predecessors of the specified task.
1743  /// </summary>
1744  /// <param name="task">The task to get predecessors for.</param>
1745  /// <returns>List of predecessors <see cref="TaskLink"></see>.</returns>
1746  ASPOSE_TASKS_SHARED_API System::SharedPtr<TaskLinkCollection> GetPredecessors(const System::SharedPtr<Task>& task);
1747  /// <summary>
1748  /// Returns the value to which the property is mapped in this container.
1749  /// </summary>
1750  /// <param name="key">the specified property key. <see cref="Prj"></see> for getting the property key.</param>
1751  /// <typeparam name="T">the type of the mapped value.</typeparam>
1752  /// <returns>the value to which the property is mapped in this container.</returns>
1753  template <typename T>
1754  T Get(const Key<T, PrjKey>& key) const
1755  {
1756  if (key.get_KeyType() == Aspose::Tasks::PrjKey::ShowProjectSummaryTask)
1757  {
1758  return System::ExplicitCast<T>(System::ExplicitCast<System::Object>(this->get_DisplayOptions()->get_ShowProjectSummaryTask()));
1759  }
1760 
1761  if (this->get_CanCalculate())
1762  {
1763  auto getter = System::ExplicitCast<Aspose::Tasks::CalculatedPropertyGetter<System::SharedPtr<Project>, T>>(ProjectCalculatedProperties::GetPropertyGetter(key.get_KeyType()));
1764  if (getter != nullptr)
1765  {
1766  return getter->get_GetAction()(System::MakeSharedPtr(this));
1767  }
1768  }
1769 
1770  return this->container->template CheckPropAndGet<T>(key);
1771  }
1772 
1773  /// <summary>
1774  /// Maps the specified property to the specified value in this container.
1775  /// </summary>
1776  /// <param name="key">the specified property key. <see cref="Prj"></see> for getting the property key.</param>
1777  /// <param name="val">the value.</param>
1778  /// <typeparam name="T">the type of the mapped value.</typeparam>
1779  template <typename T>
1780  void Set(const Key<T, PrjKey>& key, const T& val)
1781  {
1782  if (key.get_KeyType() == Aspose::Tasks::PrjKey::ShowProjectSummaryTask)
1783  {
1784  this->get_DisplayOptions()->set_ShowProjectSummaryTask(System::ExplicitCast<bool>(System::ExplicitCast<System::Object>(val)));
1785  return;
1786  }
1787 
1788  if (this->get_CanCalculate())
1789  {
1790  auto setter = System::ExplicitCast<Aspose::Tasks::CalculatedPropertySetter<System::SharedPtr<Project>, T>>(ProjectCalculatedProperties::GetPropertySetter(key.get_KeyType()));
1791 
1792  if (setter != nullptr)
1793  {
1794  setter->get_SetAction()(System::MakeSharedPtr(this), val);
1795  }
1796  else
1797  {
1798  this->container->template CheckPropAndSet<T>(key, val);
1799  }
1800  }
1801  else
1802  {
1803  this->container->template CheckPropAndSet<T>(key, val);
1804  }
1805  }
1806 
1807  /// <summary>
1808  /// Maps the specified property to the specified value in this container.
1809  /// </summary>
1810  /// <param name="key">the specified property key. <see cref="Prj"></see> for getting the property key.</param>
1811  /// <param name="val">the value.</param>
1812  ASPOSE_TASKS_SHARED_API void Set(const Key<System::DateTime, PrjKey>& key, const System::DateTime& val);
1813  /// <summary>
1814  /// Recalculates Start and Finish of resources.
1815  /// </summary>
1816  ASPOSE_TASKS_SHARED_API void RecalculateResourceStartFinish();
1817  /// <summary>
1818  /// Recalculates Id, Start and Finish of resources.
1819  /// </summary>
1820  ASPOSE_TASKS_SHARED_API void RecalculateResourceFields();
1821  /// <summary>
1822  /// Eliminates invalid resource assignments from the project resource assignments list.
1823  /// </summary>
1824  /// <remarks>MS Project creates an empty resource assignment for each task. Call the method to remove them.</remarks>
1825  ASPOSE_TASKS_SHARED_API void RemoveInvalidResourceAssignments();
1826  /// <summary>
1827  /// Returns the baseline save time.
1828  /// </summary>
1829  /// <param name="baselineNumber">The baseline's number <see cref="Aspose::Tasks::BaselineType"></see>.</param>
1830  /// <returns>The baseline's last save date and time.</returns>
1831  /// <remarks>Returns DateTime.MinValue if the baseline was not saved.</remarks>
1832  ASPOSE_TASKS_SHARED_API System::DateTime GetBaselineSaveTime(BaselineType baselineNumber);
1833  /// <summary>
1834  /// Sets the baseline save time.
1835  /// </summary>
1836  /// <param name="baselineNumber">The baseline's number <see cref="Aspose::Tasks::BaselineType"></see>.</param>
1837  /// <param name="value">The baseline's last save date and time.</param>
1838  /// <remarks>Set value to DateTime.MinValue if the baseline was not saved.</remarks>
1839  ASPOSE_TASKS_SHARED_API void SetBaselineSaveTime(BaselineType baselineNumber, System::DateTime value);
1840  /// <summary>
1841  /// Reschedules all project tasks ids, outline levels, start/finish dates, sets early/late dates, calculates slacks, work and cost fields.
1842  /// </summary>
1843  ASPOSE_TASKS_SHARED_API void Recalculate();
1844  /// <summary>
1845  /// Reschedules all project tasks ids, outline levels, start/finish dates, sets early/late dates, calculates slacks, work and cost fields with optional validation.
1846  /// </summary>
1847  /// <param name="validate">
1848  /// If true the validation of recalculation will be performed.
1849  /// What data is validated:
1850  /// At the moment only basic validation of task and task link date ranges is implemented.
1851  /// Task's date ranges (e.g. ActualStart - ActualFinish, EarlyStart - EarlyFinish, etc.) as well as Task Links dates will be checked against the date criteria that start date is less or equal than finish date.
1852  /// If any of conditions described above is failed then <see cref="RecalculationValidationException"></see> will be thrown.
1853  /// </param>
1854  ASPOSE_TASKS_SHARED_API void Recalculate(bool validate);
1855  /// <summary>
1856  /// Saves the document to a file using the specified save options.
1857  /// </summary>
1858  /// <param name="filename">The file name.</param>
1859  /// <param name="options">The save options.</param>
1860  ASPOSE_TASKS_SHARED_API void Save(const System::String& filename, const System::SharedPtr<Saving::SimpleSaveOptions>& options);
1861  /// <summary>
1862  /// Saves the project data to the file.
1863  /// </summary>
1864  /// <param name="filename">The file name.</param>
1865  /// <param name="format">The save file format.</param>
1866  ASPOSE_TASKS_SHARED_API void Save(const System::String& filename, Saving::SaveFileFormat format);
1867  /// <summary>
1868  /// Saves the project data to the file in mpp format.
1869  /// </summary>
1870  /// <param name="filename">The file name.</param>
1871  ASPOSE_TASKS_SHARED_API void Save(const System::String& filename);
1872  /// <summary>
1873  /// Saves the project to a stream using the specified save options.
1874  /// </summary>
1875  /// <param name="stream">The stream.</param>
1876  /// <param name="options">The save options.</param>
1877  ASPOSE_TASKS_SHARED_API void Save(const System::SharedPtr<System::IO::Stream>& stream, const System::SharedPtr<Saving::SimpleSaveOptions>& options);
1878  /// <summary>
1879  /// Saves the project data to the stream.
1880  /// </summary>
1881  /// <param name="stream">The stream.</param>
1882  /// <param name="format">the specified save file format.<see cref="SaveFileFormat"></see></param>
1883  ASPOSE_TASKS_SHARED_API void Save(const System::SharedPtr<System::IO::Stream>& stream, Saving::SaveFileFormat format);
1884  /// <summary>
1885  /// Saves the project overview report to the stream.
1886  /// </summary>
1887  /// <param name="stream">The stream to save project report to.</param>
1888  ASPOSE_TASKS_SHARED_API void SaveReport(const System::SharedPtr<System::IO::Stream>& stream);
1889  /// <summary>
1890  /// Saves the project overview report to PDF file.
1891  /// </summary>
1892  /// <param name="fileName">The file name.</param>
1893  ASPOSE_TASKS_SHARED_API void SaveReport(const System::String& fileName);
1894  /// <summary>
1895  /// Saves the project report of the specified type to the specified stream.
1896  /// </summary>
1897  /// <param name="stream">the specified stream to save project report to.</param>
1898  /// <param name="reportType">the specified report type.<see cref="ReportType"></see></param>
1899  ASPOSE_TASKS_SHARED_API void SaveReport(const System::SharedPtr<System::IO::Stream>& stream, Visualization::ReportType reportType);
1900  /// <summary>
1901  /// Saves the project report of the specified type in PDF format to the specified file path.
1902  /// </summary>
1903  /// <param name="fileName">the specified file name.</param>
1904  /// <param name="reportType">the specified report type.<see cref="ReportType"></see></param>
1905  ASPOSE_TASKS_SHARED_API void SaveReport(const System::String& fileName, Visualization::ReportType reportType);
1906  /// <summary>
1907  /// Saves the project as a template.
1908  /// </summary>
1909  /// <param name="fileName">The file name.</param>
1910  /// <param name="options">the specified save options <see cref="SaveTemplateOptions"></see>.</param>
1911  ASPOSE_TASKS_SHARED_API void SaveAsTemplate(const System::String& fileName, const System::SharedPtr<Saving::SaveTemplateOptions>& options);
1912  /// <summary>
1913  /// Saves the project as a template to the specified file path.
1914  /// </summary>
1915  /// <param name="fileName">the specified file name.</param>
1916  ASPOSE_TASKS_SHARED_API void SaveAsTemplate(const System::String& fileName);
1917  /// <summary>
1918  /// Saves the project as a template to a specified stream.
1919  /// </summary>
1920  /// <param name="stream">the specified stream to save the project to.</param>
1921  ASPOSE_TASKS_SHARED_API void SaveAsTemplate(const System::SharedPtr<System::IO::Stream>& stream);
1922  /// <summary>
1923  /// Saves the project as a template to a specified stream.
1924  /// </summary>
1925  /// <param name="stream">Stream to save the project template to.</param>
1926  /// <param name="options">the specified save options <see cref="SaveTemplateOptions"></see>.</param>
1927  ASPOSE_TASKS_SHARED_API void SaveAsTemplate(const System::SharedPtr<System::IO::Stream>& stream, const System::SharedPtr<Saving::SaveTemplateOptions>& options);
1928  /// <summary>
1929  /// Returns page count for the project to be rendered using given <see cref="SaveOptions"></see>.
1930  /// </summary>
1931  /// <param name="saveOptions">The save options to get page count for.</param>
1932  /// <returns>a page count to be rendered.</returns>
1933  /// <example>
1934  /// In this example instance of HtmlSaveOptions and the number of pages in resulting HTML is written to the console.
1935  /// <code>
1936  /// [C#]
1937  /// Project project = new Project(@"test.mpp");
1938  /// HtmlSaveOptions saveOptions = new HtmlSaveOptions
1939  /// {
1940  /// IncludeProjectNameInPageHeader = false,
1941  /// IncludeProjectNameInTitle = false,
1942  /// PageSize = PageSize.A4,
1943  /// Timescale = Timescale.Days,
1944  /// StartDate = project.Get(Prj.StartDate).Date,
1945  /// EndDate = project.Get(Prj.FinishDate).Date
1946  /// };
1947  ///
1948  /// Console.WriteLine(project.GetPageCount(saveOptions));
1949  /// </code>
1950  /// </example>
1951  ASPOSE_TASKS_SHARED_API int32_t GetPageCount(const System::SharedPtr<Saving::SaveOptions>& saveOptions);
1952  /// <summary>
1953  /// Returns page count for the project to be rendered using default <see cref="Timescale"></see>(Days).
1954  /// </summary>
1955  /// <returns>Page count to be rendered.</returns>
1956  ASPOSE_TASKS_SHARED_API int32_t GetPageCount();
1957  /// <summary>
1958  /// Returns page count for the project to be rendered using given <see cref="Timescale"></see>.
1959  /// </summary>
1960  /// <param name="scale">The scale to get page count for.</param>
1961  /// <returns>Page count to be rendered.</returns>
1962  ASPOSE_TASKS_SHARED_API int32_t GetPageCount(Visualization::Timescale scale);
1963  /// <summary>
1964  /// Returns page count for the project to be rendered using default <see cref="Timescale"></see>(Days) and given <see cref="PresentationFormat"></see>
1965  /// </summary>
1966  /// <param name="format">The format to get page count for.</param>
1967  /// <returns>Page count to be rendered.</returns>
1968  ASPOSE_TASKS_SHARED_API int32_t GetPageCount(Visualization::PresentationFormat format);
1969  /// <summary>
1970  /// Returns page count for the project to be rendered using given <see cref="Timescale"></see> and <see cref="PresentationFormat"></see>.
1971  /// </summary>
1972  /// <param name="format">The format to get page count for.</param>
1973  /// <param name="scale">The scale to get page count for.</param>
1974  /// <returns>a page count to be rendered.</returns>
1975  ASPOSE_TASKS_SHARED_API int32_t GetPageCount(Visualization::PresentationFormat format, Visualization::Timescale scale);
1976  /// <summary>
1977  /// Returns page count for the project to be rendered using given <see cref="Timescale"></see>, <see cref="PresentationFormat"></see> and date range.
1978  /// </summary>
1979  /// <param name="pageSize">The size to get page count for.</param>
1980  /// <param name="scale">The scale to get page count for.</param>
1981  /// <param name="startDate">The start date to get page count for.</param>
1982  /// <param name="endDate">The end date to get page count for.</param>
1983  /// <returns>Page count to be rendered.</returns>
1984  ASPOSE_TASKS_SHARED_API int32_t GetPageCount(Visualization::PageSize pageSize, Visualization::Timescale scale, System::DateTime startDate, System::DateTime endDate);
1985  /// <summary>
1986  /// Returns page count for the project to be rendered using given <see cref="Timescale"></see> and <see cref="PageSize"></see>.
1987  /// </summary>
1988  /// <param name="pageSize">The size to get page count for.</param>
1989  /// <param name="scale">The scale to get page count for.</param>
1990  /// <returns>Page count to be rendered.</returns>
1991  ASPOSE_TASKS_SHARED_API int32_t GetPageCount(Visualization::PageSize pageSize, Visualization::Timescale scale);
1992  /// <summary>
1993  /// Copies project's main data and properties to another project.
1994  /// </summary>
1995  /// <param name="another">Another project to copy data to.</param>
1996  ASPOSE_TASKS_SHARED_API void CopyTo(const System::SharedPtr<Project>& another);
1997  /// <summary>
1998  /// Copies project's main data and properties to another project.
1999  /// </summary>
2000  /// <param name="another">Another project to copy data to.</param>
2001  /// <param name="options">Copy options to control copy process.</param>
2002  ASPOSE_TASKS_SHARED_API void CopyTo(const System::SharedPtr<Project>& another, const System::SharedPtr<CopyToOptions>& options);
2003  /// <summary>
2004  /// Saves baseline fields to the specified baseline for the entire project.
2005  /// </summary>
2006  /// <param name="baselineType">The baseline type to save baseline data to.</param>
2007  ASPOSE_TASKS_SHARED_API void SetBaseline(BaselineType baselineType);
2008  /// <summary>
2009  /// Saves baseline fields to the specified baseline for the selected tasks.
2010  /// </summary>
2011  /// <param name="baselineType">The baseline type to save baseline data to.</param>
2012  /// <param name="taskCollection">List of tasks to save baseline data for.</param>
2013  ASPOSE_TASKS_SHARED_API void SetBaseline(BaselineType baselineType, const System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<Task>>>& taskCollection);
2014  /// <summary>
2015  /// Updates all work as complete through a specified date for the entire project.
2016  /// </summary>
2017  /// <param name="completeThrough">The date to update work as completed through.</param>
2018  /// <param name="setZeroOrHundredPercentCompleteOnly">If set to true updates only those tasks as 100% complete whose finish date is before specified complete-through date.
2019  /// Otherwise, calculates a percentage complete value based on scheduled start and complete-through dates.</param>
2020  ASPOSE_TASKS_SHARED_API void UpdateProjectWorkAsComplete(System::DateTime completeThrough, bool setZeroOrHundredPercentCompleteOnly);
2021  /// <summary>
2022  /// Updates all work as complete through a specified date for the specified list of tasks.
2023  /// </summary>
2024  /// <param name="completeThrough">The date to update work as completed through.</param>
2025  /// <param name="setZeroOrHundredPercentCompleteOnly">If set to true updates only those tasks as 100% complete whose finish date is before specified complete-through date.
2026  /// Otherwise, calculates a percentage complete value based on scheduled start and complete-through dates.</param>
2027  /// <param name="taskCollection">List&lt;Task&gt; of tasks to update work for.</param>
2028  ASPOSE_TASKS_SHARED_API void UpdateProjectWorkAsComplete(System::DateTime completeThrough, bool setZeroOrHundredPercentCompleteOnly, const System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Task>>>& taskCollection);
2029  /// <summary>
2030  /// Reschedules uncompleted project work to start after a specified date.
2031  /// </summary>
2032  /// <param name="after">The date to reschedule uncompleted work after.</param>
2033  ASPOSE_TASKS_SHARED_API void RescheduleUncompletedWorkToStartAfter(System::DateTime after);
2034  /// <summary>
2035  /// Reschedules uncompleted work for a specified list of tasks to start after a specified date.
2036  /// </summary>
2037  /// <param name="after">The date to reschedule uncompleted work after.</param>
2038  /// <param name="taskCollection">List&lt;Task&gt; of tasks to reschedule uncompleted work for.</param>
2039  ASPOSE_TASKS_SHARED_API void RescheduleUncompletedWorkToStartAfter(System::DateTime after, const System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Task>>>& taskCollection);
2040  /// <summary>
2041  /// Renumber WBS code of all tasks.
2042  /// </summary>
2043  ASPOSE_TASKS_SHARED_API void RenumberWBSCode();
2044  /// <summary>
2045  /// Renumber WBS code of passed tasks.
2046  /// </summary>
2047  /// <param name="taskIds">Task identifiers to renumber WBS codes.</param>
2048  ASPOSE_TASKS_SHARED_API void RenumberWBSCode(const System::SharedPtr<System::Collections::Generic::List<int32_t>>& taskIds);
2049  /// <summary>
2050  /// Gets <see cref="Duration"></see> object with the specified number of units and default duration format which is defined in project's settings <see cref="Prj::DurationFormat"></see>.
2051  /// </summary>
2052  /// <param name="val">specified number of units.</param>
2053  /// <returns>Duration object.</returns>
2054  /// <remarks>This method should be used carefully because it returns different durations depending on Project.DurationFormat setting.
2055  /// For example, GetWork(1.0) will return 1 hour when Project.DurationFormat is TimeUnitType.Hour or 1 day if Project.DurationFormat is TimeUnitType.Day.
2056  /// </remarks>
2057  ASPOSE_TASKS_SHARED_API Duration GetDuration(double val);
2058  /// <summary>
2059  /// Gets <see cref="Duration"></see> object with the specified number of <see cref="TimeUnitType"></see> units.
2060  /// </summary>
2061  /// <param name="val">specified number of units.</param>
2062  /// <param name="timeUnit">specified TimeUnitType value.</param>
2063  /// <returns>Duration object.</returns>
2064  ASPOSE_TASKS_SHARED_API Duration GetDuration(double val, TimeUnitType timeUnit);
2065  /// <summary>
2066  /// Gets <see cref="Duration"></see> object with the specified <see cref="TimeSpan"></see> value and specified <see cref="TimeUnitType"></see> value.
2067  /// </summary>
2068  /// <param name="timeSpan">specified <see cref="TimeSpan"></see> value.</param>
2069  /// <param name="timeUnit">specified TimeUnitType value.</param>
2070  /// <returns>Duration object.</returns>
2071  ASPOSE_TASKS_SHARED_API Duration GetDuration(System::TimeSpan timeSpan, TimeUnitType timeUnit);
2072  /// <summary>
2073  /// Gets <see cref="Duration"></see> object with the specified <see cref="double"></see> value and default work format.
2074  /// </summary>
2075  /// <param name="val">specified double value.</param>
2076  /// <returns>Duration object.</returns>
2077  /// <remarks>This method should be used carefully because it returns different durations depending on Project.WorkFormat setting.
2078  /// For example, GetWork(1.0) will return 1 hour when Project.WorkFormat is TimeUnitType.Hour or 1 day if Project.WorkFormat is TimeUnitType.Day.
2079  /// </remarks>
2080  ASPOSE_TASKS_SHARED_API Duration GetWork(double val);
2081 
2082 protected:
2083 
2084  static ASPOSE_TASKS_SHARED_API Aspose::Tasks::CalculationMode& NewProjectCalculationMode();
2085 
2086  System::SharedPtr<Aspose::Tasks::Util::TasksIdTracker> TasksIdTracker;
2087 
2088  ASPOSE_TASKS_SHARED_API bool get_SkipRecalculationAfterSetLevelingDelay() const;
2089  ASPOSE_TASKS_SHARED_API void set_SkipRecalculationAfterSetLevelingDelay(bool value);
2090  /// <summary>
2091  /// Gets the root of the tree of tasks.
2092  /// </summary>
2093  ASPOSE_TASKS_SHARED_API void set_RootTask(const System::SharedPtr<Task>& value);
2094  /// <summary>
2095  /// Gets <see cref="TaskLinkCollection"></see> object.
2096  /// </summary>
2097  ASPOSE_TASKS_SHARED_API void set_TaskLinks(const System::SharedPtr<TaskLinkCollection>& value);
2098  /// <summary>
2099  /// Gets <see cref="CalendarCollection"></see> object of this Project instance.
2100  /// </summary>
2101  ASPOSE_TASKS_SHARED_API void set_Calendars(const System::SharedPtr<CalendarCollection>& value);
2102  /// <summary>
2103  /// Gets ResourceCollection object.
2104  /// </summary>
2105  ASPOSE_TASKS_SHARED_API void set_Resources(const System::SharedPtr<ResourceCollection>& value);
2106  /// <summary>
2107  /// Gets OutlineCodeDefinitionCollection object.
2108  /// The collection of outline code definitions associated with a project.
2109  /// </summary>
2110  ASPOSE_TASKS_SHARED_API void set_OutlineCodes(const System::SharedPtr<OutlineCodeDefinitionCollection>& value);
2111  /// <summary>
2112  /// Gets ResourceAssignmentCollection object.
2113  /// </summary>
2114  ASPOSE_TASKS_SHARED_API void set_ResourceAssignments(const System::SharedPtr<ResourceAssignmentCollection>& value);
2115  /// <summary>
2116  /// Gets the instance of <see cref="WeekDayCollection"></see> class which represents a collection of project default week working days and working times.
2117  /// </summary>
2118  /// <remarks>The data contains only in mpp files (not in xml).</remarks>
2119  /// <param name="value">The instance of <see cref="WeekDayCollection"></see> class which contains a list of <see cref="WeekDay"></see> objects.</param>
2120  ASPOSE_TASKS_SHARED_API void set_DefaultWeekWorkingDays(const System::SharedPtr<WeekDayCollection>& value);
2121  /// <summary>
2122  /// Gets ExtendedAttributeDefinitionCollection object.
2123  /// The collection of extended attribute (custom fields) definitions associated with a project.
2124  /// </summary>
2125  ASPOSE_TASKS_SHARED_API void set_ExtendedAttributes(const System::SharedPtr<ExtendedAttributeDefinitionCollection>& value);
2126  /// <summary>
2127  /// Gets an object containing Primavera-specific properties for a project read from Primavera file.
2128  /// </summary>
2129  ASPOSE_TASKS_SHARED_API void set_PrimaveraProperties(const System::SharedPtr<PrimaveraProjectProperties>& value);
2130  /// <summary>
2131  /// Gets project's properties collection.
2132  /// </summary>
2133  ASPOSE_TASKS_SHARED_API const System::SharedPtr<Properties::ProjectPropertyCollection>& get_Properties() const;
2134 
2135  /// <summary>
2136  /// Unlike native tasks, external tasks did not stored in project's task collection.
2137  /// In C++ TaskLink objects keep PredTask and SuccTask as weak references.
2138  /// This list is to keep alive TaskLink's references to external tasks
2139  /// </summary>
2140  System::SharedPtr<System::Collections::Generic::IList<System::SharedPtr<Task>>> cppExternalTasksProtector;
2141 
2142  ASPOSE_TASKS_SHARED_API System::SharedPtr<Aspose::Tasks::MeteredLicenseManager> get_MeteredLicenseManager();
2143  ASPOSE_TASKS_SHARED_API void set_MeteredLicenseManager(const System::SharedPtr<Aspose::Tasks::MeteredLicenseManager>& value);
2144  ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::IDictionary<CustomField, CustomFieldType>> get_EnterpriseCfTypeMap() const;
2145  ASPOSE_TASKS_SHARED_API const System::SharedPtr<TimelineView>& get_Timeline() const;
2146  ASPOSE_TASKS_SHARED_API void set_Timeline(const System::SharedPtr<TimelineView>& value);
2147  ASPOSE_TASKS_SHARED_API const System::SharedPtr<ProjectFileInfo>& get_FileInfo() const;
2148  ASPOSE_TASKS_SHARED_API void set_FileInfo(const System::SharedPtr<ProjectFileInfo>& value);
2149  ASPOSE_TASKS_SHARED_API const System::SharedPtr<Compound::MscdFileSystem>& get_FileSystem() const;
2150  ASPOSE_TASKS_SHARED_API void set_FileSystem(const System::SharedPtr<Compound::MscdFileSystem>& value);
2151  ASPOSE_TASKS_SHARED_API const System::SharedPtr<System::Collections::Generic::IDictionary<BaselineType, System::DateTime>>& get_BaselineSaveDates() const;
2152  ASPOSE_TASKS_SHARED_API System::SharedPtr<Aspose::Tasks::ProjectState> get_ProjectState() const;
2153  ASPOSE_TASKS_SHARED_API void set_ProjectState(const System::SharedPtr<Aspose::Tasks::ProjectState>& value);
2154  ASPOSE_TASKS_SHARED_API System::String get_ProtectionPassword() const;
2155  ASPOSE_TASKS_SHARED_API void set_ProtectionPassword(const System::String& value);
2156  ASPOSE_TASKS_SHARED_API const System::SharedPtr<IO::MSProject::TaskFieldsMapper>& get_TaskMapper() const;
2157  ASPOSE_TASKS_SHARED_API void set_TaskMapper(const System::SharedPtr<IO::MSProject::TaskFieldsMapper>& value);
2158  ASPOSE_TASKS_SHARED_API const System::SharedPtr<IO::MSProject::AssnFieldsMapper>& get_AssnMapper() const;
2159  ASPOSE_TASKS_SHARED_API void set_AssnMapper(const System::SharedPtr<IO::MSProject::AssnFieldsMapper>& value);
2160  ASPOSE_TASKS_SHARED_API const System::SharedPtr<IO::MSProject::RscFieldsMapper>& get_RscMapper() const;
2161  ASPOSE_TASKS_SHARED_API void set_RscMapper(const System::SharedPtr<IO::MSProject::RscFieldsMapper>& value);
2162  ASPOSE_TASKS_SHARED_API const System::SharedPtr<Visualization::FontCollection>& get_Fonts() const;
2163  ASPOSE_TASKS_SHARED_API void set_Fonts(const System::SharedPtr<Visualization::FontCollection>& value);
2164  /// <summary>
2165  /// Gets all project tasks in a dictionary using task id as a key in the dictionary.
2166  /// </summary>
2167  ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::IDictionary<int32_t, System::SharedPtr<Task>>> get_Tasks();
2168  /// <summary>
2169  /// Sets all project tasks in a dictionary using task id as a key in the dictionary.
2170  /// </summary>
2171  ASPOSE_TASKS_SHARED_API void set_Tasks(const System::SharedPtr<System::Collections::Generic::IDictionary<int32_t, System::SharedPtr<Task>>>& value);
2172  ASPOSE_TASKS_SHARED_API double get_HoursPerDay();
2173  ASPOSE_TASKS_SHARED_API double get_HoursPerWeek();
2174  ASPOSE_TASKS_SHARED_API double get_HoursPerMonth();
2175  ASPOSE_TASKS_SHARED_API double get_HoursPerYear();
2176  ASPOSE_TASKS_SHARED_API System::SharedPtr<Aspose::Tasks::GanttChartView> get_GanttChartView();
2177  ASPOSE_TASKS_SHARED_API const System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<SavedView>>>& get_SavedViews() const;
2178  ASPOSE_TASKS_SHARED_API System::String get_DefaultViewName() const;
2179  ASPOSE_TASKS_SHARED_API void set_DefaultViewName(const System::String& value);
2180  ASPOSE_TASKS_SHARED_API bool get_ViewDataInitialized() const;
2181  ASPOSE_TASKS_SHARED_API System::Guid get_DefaultCalendarGuid() const;
2182  ASPOSE_TASKS_SHARED_API void set_DefaultCalendarGuid(System::Guid value);
2183  ASPOSE_TASKS_SHARED_API int32_t get_DefaultCalendarUid() const;
2184  ASPOSE_TASKS_SHARED_API void set_DefaultCalendarUid(int32_t value);
2185  ASPOSE_TASKS_SHARED_API System::String get_TemplateFullPath() const;
2186  ASPOSE_TASKS_SHARED_API const System::SharedPtr<SharedAssignmentCollection>& get_SharedResourceAssignments() const;
2187  ASPOSE_TASKS_SHARED_API void set_SharedResourceAssignments(const System::SharedPtr<SharedAssignmentCollection>& value);
2188  ASPOSE_TASKS_SHARED_API const System::SharedPtr<IO::MSProject::Metadata::MppMetadata>& get_Metadata() const;
2189  ASPOSE_TASKS_SHARED_API void set_Metadata(const System::SharedPtr<IO::MSProject::Metadata::MppMetadata>& value);
2190  ASPOSE_TASKS_SHARED_API bool get_CanCalculate() const;
2191 
2192  ASPOSE_TASKS_SHARED_API Project(bool initValues);
2193 
2194  ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(Project, CODEPORTING_ARGS(bool initValues));
2195 
2196  ASPOSE_TASKS_SHARED_API Project(bool initValues, bool increaseCredit);
2197 
2198  ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(Project, CODEPORTING_ARGS(bool initValues, bool increaseCredit));
2199  static ASPOSE_TASKS_SHARED_API System::SharedPtr<Project> OpenProjectWithoutCredits(const System::SharedPtr<System::IO::Stream>& s);
2200  virtual ASPOSE_TASKS_SHARED_API System::SharedPtr<Aspose::Tasks::MeteredLicenseManager> GetMeteredLicenseManager();
2201  ASPOSE_TASKS_SHARED_API void SetDefaultViewName(const System::String& name);
2202  ASPOSE_TASKS_SHARED_API void SetDefaultWorkingDays(const System::ArrayPtr<uint8_t>& bytes);
2203  /// <summary>
2204  /// Returns next Task Uid.
2205  /// For project without tasks starts from 0, else starts from max Uid + 1.
2206  /// Increments each call.
2207  /// </summary>
2208  ASPOSE_TASKS_SHARED_API int32_t GenerateNextTaskUid();
2209  /// <summary>
2210  /// Checks the project's structure. Returns true if the project
2211  /// structure is correct and false if the structure is broken.
2212  /// </summary>
2213  /// <returns>returns true if the project structure is correct and false if the structure is broken.</returns>
2214  ASPOSE_TASKS_SHARED_API bool CheckCircuit();
2215  ASPOSE_TASKS_SHARED_API void InitNextUids();
2216  ASPOSE_TASKS_SHARED_API void CalcTaskOutlineLevels();
2217  /// <summary>
2218  /// Recalculates project's tasks Outline number default codes.
2219  /// </summary>
2220  ASPOSE_TASKS_SHARED_API void CalcTaskOutlineNumbers();
2221  /// <summary>
2222  /// Calculates EarlyDates, LateDates, Start, Finish and TotalSlacks of each task
2223  /// and determines critical path of project based on calculated values.
2224  /// </summary>
2225  ASPOSE_TASKS_SHARED_API void CalculateCriticalPath();
2226  ASPOSE_TASKS_SHARED_API void CopyAllTo(const System::SharedPtr<Project>& proj);
2227  ASPOSE_TASKS_SHARED_API System::String GetCostFormatLabel();
2228  ASPOSE_TASKS_SHARED_API System::String GetCurrencyDigitsFormatString(const System::String& format);
2229  ASPOSE_TASKS_SHARED_API void CalcSummaries();
2230  ASPOSE_TASKS_SHARED_API void CalcStartFinishVariances();
2231  ASPOSE_TASKS_SHARED_API System::SharedPtr<Filter> GetFilter(const System::String& filterName);
2232  ASPOSE_TASKS_SHARED_API System::SharedPtr<Group> GetGroup(const System::String& groupName);
2233  ASPOSE_TASKS_SHARED_API void DefineOverallocations();
2234  ASPOSE_TASKS_SHARED_API Duration GetDuration(Duration duration);
2235  ASPOSE_TASKS_SHARED_API Duration GetDuration(System::TimeSpan timeSpan);
2236  ASPOSE_TASKS_SHARED_API Duration GetDuration(Duration duration, TimeUnitType timeUnit);
2237  ASPOSE_TASKS_SHARED_API Duration GetZeroDuration();
2238  /// <summary>
2239  /// Gets <see cref="Duration"></see> object with the specified <see cref="TimeSpan"></see> value and default work format.
2240  /// </summary>
2241  /// <param name="timeSpan">specified TimeSpan value.</param>
2242  /// <returns>Duration object.</returns>
2243  ASPOSE_TASKS_SHARED_API Duration GetWork(System::TimeSpan timeSpan);
2244  /// <summary>
2245  /// Gets <see cref="Duration"></see> object with the specified <see cref="TimeSpan"></see> value and default work format.
2246  /// </summary>
2247  /// <param name="timeSpan">specified TimeSpan value.</param>
2248  /// <param name="workFormat">The work format.</param>
2249  /// <returns>Duration object.</returns>
2250  ASPOSE_TASKS_SHARED_API Duration GetWork(System::TimeSpan timeSpan, TimeUnitType workFormat);
2251  ASPOSE_TASKS_SHARED_API Duration GetWork(Duration work);
2252  ASPOSE_TASKS_SHARED_API Duration GetZeroWork();
2253  /// <summary>
2254  /// Checks running mode and sets Year component to 2000 for all dates in the project as an evaluation limitation.
2255  /// </summary>
2256  ASPOSE_TASKS_SHARED_API void EnsureEvaluationMode(InternalFormatFlags format);
2257  /// <summary>
2258  /// All Aspose products should implement this method.
2259  /// It is called by a Venture product to indicate whether Venture itself is licensed or not and specify a custom watermark.
2260  /// When Venture is licensed, this project instance should behave as licensed too even if the Aspose product is not licensed.
2261  /// </summary>
2262  ASPOSE_TASKS_SHARED_API void SetVentureLicense(const System::SharedPtr<System::Object>& license);
2263  ASPOSE_TASKS_SHARED_API void CloneTo(const System::SharedPtr<Project>& another);
2264  ASPOSE_TASKS_SHARED_API void InitRootTask();
2265  ASPOSE_TASKS_SHARED_API void PerformBeforeSaveActions(InternalFormatFlags saveFileFormat, const System::SharedPtr<Saving::SimpleSaveOptions>& options);
2266  ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<ResourceAssignment>>> GetResourceAssignmentsIncludingShared(const System::SharedPtr<Resource>& resource);
2267  ASPOSE_TASKS_SHARED_API System::SharedPtr<Aspose::Tasks::ProjectState> SetReadingState();
2268  ASPOSE_TASKS_SHARED_API bool NeedToAddDefaultAssignment();
2269 
2270  virtual ASPOSE_TASKS_SHARED_API ~Project();
2271 
2272  #ifdef ASPOSE_GET_SHARED_MEMBERS
2273  ASPOSE_TASKS_SHARED_API void GetSharedMembers(System::Object::shared_members_type& result) const override;
2274  #endif
2275 
2276 
2277 private:
2278 
2279  System::SharedPtr<ProjectDisplayOptions> displayOptions;
2280  System::SharedPtr<System::Collections::Generic::IDictionary<CustomField, CustomFieldType>> enterpriseCfTypeMap;
2281  System::SharedPtr<OleObjectCollection> oleObjects;
2282  System::SharedPtr<Saving::SaveManager> saveManager;
2283  System::SharedPtr<IdGenerator> nextTaskUidGen;
2284  System::SharedPtr<Aspose::Tasks::MeteredLicenseManager> meteredLicenseManager;
2285  System::SharedPtr<PropertyContainer<PrjKey>> container;
2286  System::SharedPtr<Aspose::Tasks::ProjectState> projectState;
2287  Aspose::Tasks::CalculationMode calculationMode;
2288  System::SharedPtr<System::Collections::Generic::IDictionary<int32_t, System::SharedPtr<Task>>> tasks;
2289  System::SharedPtr<FilterCollection> taskFilters;
2290  System::SharedPtr<FilterCollection> rscFilters;
2291  System::SharedPtr<ViewCollection> views;
2292  System::SharedPtr<TableCollection> tables;
2293  System::SharedPtr<GroupCollection> taskGroups;
2294  System::SharedPtr<GroupCollection> rscGroups;
2295  System::SharedPtr<View> defaultView;
2296  bool pr_SkipRecalculationAfterSetLevelingDelay;
2297  /// <summary>
2298  /// This stores the venture licensing state instead of 2 obvious fields such as string value for watermark and some value indicating license is set or not.
2299  /// </summary>
2300  System::SharedPtr<System::Object> ventureLicense;
2301  System::String defaultViewName;
2302  System::SharedPtr<Aspose::Tasks::VbaProject> pr_VbaProject;
2303 
2304  /// <summary>
2305  /// Gets an instance of <see cref="VbaProject"></see> class.
2306  /// </summary>
2307  ASPOSE_TASKS_SHARED_API void set_VbaProject(const System::SharedPtr<Aspose::Tasks::VbaProject>& value);
2308 
2309  System::SharedPtr<Task> pr_RootTask;
2310  System::SharedPtr<TaskLinkCollection> pr_TaskLinks;
2311  System::SharedPtr<CalendarCollection> pr_Calendars;
2312  System::SharedPtr<ResourceCollection> pr_Resources;
2313  System::SharedPtr<OutlineCodeDefinitionCollection> pr_OutlineCodes;
2314  System::SharedPtr<ResourceAssignmentCollection> pr_ResourceAssignments;
2315  System::SharedPtr<WeekDayCollection> pr_DefaultWeekWorkingDays;
2316  System::SharedPtr<Properties::BuiltInProjectPropertyCollection> pr_BuiltInProps;
2317 
2318  /// <summary>
2319  /// Gets project's built-in properties collection.
2320  /// </summary>
2321  ASPOSE_TASKS_SHARED_API void set_BuiltInProps(const System::SharedPtr<Properties::BuiltInProjectPropertyCollection>& value);
2322 
2323  System::SharedPtr<Properties::CustomProjectPropertyCollection> pr_CustomProps;
2324 
2325  /// <summary>
2326  /// Gets project's custom properties collection.
2327  /// </summary>
2328  ASPOSE_TASKS_SHARED_API void set_CustomProps(const System::SharedPtr<Properties::CustomProjectPropertyCollection>& value);
2329 
2330  System::SharedPtr<ExtendedAttributeDefinitionCollection> pr_ExtendedAttributes;
2331 
2332  /// <summary>
2333  /// Gets all the task-based filter definitions.
2334  /// TaskFilters is a collection of <see cref="Filter"></see> objects.
2335  /// </summary>
2336  ASPOSE_TASKS_SHARED_API void set_TaskFilters(const System::SharedPtr<FilterCollection>& value);
2337  /// <summary>
2338  /// Gets all the resource-based filter definitions.
2339  /// ResourceFilters is a collection of <see cref="Filter"></see> objects.
2340  /// </summary>
2341  ASPOSE_TASKS_SHARED_API void set_ResourceFilters(const System::SharedPtr<FilterCollection>& value);
2342  /// <summary>
2343  /// Gets a list of <see cref="View"></see> objects.
2344  /// </summary>
2345  ASPOSE_TASKS_SHARED_API void set_Views(const System::SharedPtr<ViewCollection>& value);
2346  /// <summary>
2347  /// Gets a list of <see cref="Table"></see> objects.
2348  /// </summary>
2349  ASPOSE_TASKS_SHARED_API void set_Tables(const System::SharedPtr<TableCollection>& value);
2350  /// <summary>
2351  /// Gets all the task-based group definitions.
2352  /// TaskGroups is a collection of <see cref="Group"></see> objects.
2353  /// </summary>
2354  ASPOSE_TASKS_SHARED_API void set_TaskGroups(const System::SharedPtr<GroupCollection>& value);
2355  /// <summary>
2356  /// Gets all of the resource-based group definitions.
2357  /// ResourceGroups is a collection of <see cref="Group"></see> objects.
2358  /// </summary>
2359  ASPOSE_TASKS_SHARED_API void set_ResourceGroups(const System::SharedPtr<GroupCollection>& value);
2360 
2361  System::SharedPtr<Aspose::Tasks::WBSCodeDefinition> pr_WBSCodeDefinition;
2362  System::SharedPtr<PrimaveraProjectProperties> pr_PrimaveraProperties;
2363  System::SharedPtr<Properties::ProjectPropertyCollection> pr_Properties;
2364 
2365  /// <summary>
2366  /// Gets project's properties collection.
2367  /// </summary>
2368  ASPOSE_TASKS_SHARED_API void set_Properties(const System::SharedPtr<Properties::ProjectPropertyCollection>& value);
2369  System::SharedPtr<Aspose::LicenseV2::Venture::VentureLicense> get_VentureLicense() override;
2370 
2371  System::SharedPtr<TimelineView> pr_Timeline;
2372  System::SharedPtr<ProjectFileInfo> pr_FileInfo;
2373  System::SharedPtr<Compound::MscdFileSystem> pr_FileSystem;
2374  System::SharedPtr<System::Collections::Generic::IDictionary<BaselineType, System::DateTime>> pr_BaselineSaveDates;
2375 
2376  ASPOSE_TASKS_SHARED_API void set_BaselineSaveDates(const System::SharedPtr<System::Collections::Generic::IDictionary<BaselineType, System::DateTime>>& value);
2377 
2378  System::String pr_ProtectionPassword;
2379  System::SharedPtr<IO::MSProject::TaskFieldsMapper> pr_TaskMapper;
2380  System::SharedPtr<IO::MSProject::AssnFieldsMapper> pr_AssnMapper;
2381  System::SharedPtr<IO::MSProject::RscFieldsMapper> pr_RscMapper;
2382  System::SharedPtr<Visualization::FontCollection> pr_Fonts;
2383  System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<SavedView>>> pr_SavedViews;
2384 
2385  ASPOSE_TASKS_SHARED_API void set_SavedViews(const System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<SavedView>>>& value);
2386 
2387  bool pr_ViewDataInitialized;
2388 
2389  ASPOSE_TASKS_SHARED_API void set_ViewDataInitialized(bool value);
2390 
2391  System::Guid pr_DefaultCalendarGuid;
2392  int32_t pr_DefaultCalendarUid;
2393  System::String pr_TemplateFullPath;
2394 
2395  ASPOSE_TASKS_SHARED_API void set_TemplateFullPath(const System::String& value);
2396 
2397  System::SharedPtr<SharedAssignmentCollection> pr_SharedResourceAssignments;
2398  System::SharedPtr<IO::MSProject::Metadata::MppMetadata> pr_Metadata;
2399 
2400  static System::SharedPtr<System::IO::FileStream> OpenFileForReading(const System::String& fileName);
2401  /// <summary>
2402  /// Updates <see cref="Task::ParentProject"></see> and <see cref="Task::ParentTask"></see> properties of all tasks in a project.
2403  /// </summary>
2404  void UpdateReferences();
2405  bool IsMppProject();
2406  void GetMaxUid(const System::SharedPtr<Task>& task, int32_t& max);
2407  void SetTaskBaseline(const System::SharedPtr<Task>& task, BaselineType baselineType);
2408  void CloneChildren(const System::SharedPtr<Task>& origParent, const System::SharedPtr<Task>& destParent);
2409  void CloneLinks(const System::SharedPtr<Project>& another);
2410  void CopyInternalDataTo(const System::SharedPtr<Project>& proj);
2411  void CopyMainDataTo(const System::SharedPtr<Project>& proj);
2412  void CopyViewData(const System::SharedPtr<Project>& proj);
2413  void CopyExtendedAttributeData(const System::SharedPtr<Project>& proj);
2414  void CopyProjectPropsTo(const System::SharedPtr<Project>& proj);
2415  void UpdateProjectWork(System::DateTime through, bool setZeroOrHundredPercOnly, const System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Task>>>& taskCollection, bool checkTasks);
2416  /// <summary>
2417  /// Sets Year component to 2000 for all dates in the project as an evaluation limitation.
2418  /// </summary>
2419  void ResetDatesForEvaluation();
2420  void InitBools();
2421  void InitDefaultValues();
2422  void OpenFromStream(const System::SharedPtr<System::IO::Stream>& stream, const System::SharedPtr<LoadOptions>& loadOptions);
2423  System::SharedPtr<Saving::ReportSaveManager> GetReportSaveManager();
2424  void CheckViewDataInitialized();
2425 
2426 };
2427 
2428 } // namespace Tasks
2429 } // namespace Aspose
2430 
2431 
Contains resource leveling methods.
Definition: ResourceLeveler.h:45
Represents a task in a project.
Definition: Task.h:387
A class for boolean values with possibility to check whether the value was defined or not.
Definition: NullableBool.h:21
Represents Baseline of a Task.
Definition: TaskBaseline.h:52
Project's view class
Definition: ProjectView.h:57
Represents an extended attribute definition associated with a project.
Definition: ExtendedAttributeDefinition.h:181
Definition: Asn.h:12
Represents a collection of Task objects.
Definition: TaskCollection.h:102
Represents a collection of Calendar objects.
Definition: CalendarCollection.h:97
Represents a property key of a class of the specified type. An instance of this class is used when ge...
Definition: Asn.h:19
Represents a view in Project.
Definition: View.h:99
Represents extended attributes.
Definition: ExtendedAttribute.h:137
Represents duration in a project.
Definition: Duration.h:161
Represents a project.
Definition: Project.h:550
Represents a calendar used in a project.
Definition: Calendar.h:279
K get_KeyType() const
Gets the key of the property.
Definition: Key.h:119
Represents a resource in a project.
Definition: Resource.h:207
Represents a resource assignment in a project.
Definition: ResourceAssignment.h:225
Allows to specify additional options when saving project data to MPP.
Definition: MPPSaveOptions.h:31
void Set(const Key< T, PrjKey > &key, const T &val)
Maps the specified property to the specified value in this container.
Definition: Project.h:1780
Allows to specify additional options when saving project to CSV.
Definition: CsvOptions.h:52
Represents an outline code definition.
Definition: OutlineCodeDefinition.h:83
This is an abstract base class for classes that allow the user to specify additional options when sav...
Definition: SaveOptions.h:95
T Get(const Key< T, PrjKey > &key) const
Returns the value to which the property is mapped in this container.
Definition: Project.h:1754
Represents the set of parameters are used to create a recurring task in a project.
Definition: RecurringTaskParameters.h:48