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