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