Aspose.Tasks for C++
ResourceAssignment.h
1 #pragma once
2 //-----------------------------------------------------------------------
3 // <copyright file="ResourceAssignment.cs" company="Aspose Pty Ltd">
4 // Copyright (c) 2002-2025 Aspose Pty Ltd. All Rights Reserved.
5 // </copyright>
6 //-----------------------------------------------------------------------
7 
8 #include <system/nullable.h>
9 #include <system/multicast_delegate.h>
10 #include <system/iequatable.h>
11 #include <system/guid.h>
12 
13 #include "aspose.tasks.cpp/PropertyContainer.h"
14 #include "aspose.tasks.cpp/IEntityWithTd.h"
15 #include "aspose.tasks.cpp/IEntityWithNotes.h"
16 #include "aspose.tasks.cpp/IEntityWithHyperlink.h"
17 #include "aspose.tasks.cpp/IContainer.h"
18 #include "aspose.tasks.cpp/TimephasedData.h"
19 #include "aspose.tasks.cpp/Task.h"
20 #include "aspose.tasks.cpp/Resource.h"
21 #include "aspose.tasks.cpp/Key.h"
22 #include "aspose.tasks.cpp/IExtendedAttributeParent.h"
23 #include "aspose.tasks.cpp/Enums/AsnKey.h"
24 #include "aspose.tasks.cpp/aspose_tasks_api_defs.h"
25 
26 namespace Aspose
27 {
28 namespace Tasks
29 {
30 class AssignmentBaseline;
31 class AssignmentBaselineCollection;
32 class AutoRecalculationState;
33 enum class BaselineType;
34 enum class BookingType;
35 namespace Calculations
36 {
37 class ActualsByPercentCompleteUpdater;
38 class ActualTimephasedDataUpdater;
39 class AssignmentProjection;
40 class IWorkContourIterator;
41 class RescheduleIncompleteWorkCalculator;
42 class ResourceAssignmentCalculator;
43 class ResourceAssignmentCostCalculator;
44 class ResourceAssignmentPeakCalculator;
45 class ResourceAssignmentRateByDateEnumerator;
46 class ResourceAssignmentVarianceCalculator;
47 class ResourceAssignmentWorkCalculator;
48 class ResourceOverAllocationCalculator;
49 class ResourceWorkCalculator;
50 class TaskByAssignmentCalculator;
51 class TaskCalculator;
52 class TaskStopResumeCalculator;
53 class TimephasedDataCalculator;
54 } // namespace Calculations
55 class Calendar;
56 namespace Connectivity
57 {
58 class MpdAssignmentBaselineMapper;
59 class MpdAssignmentMapper;
60 template <typename> class MpdField;
61 class MspAssignmentBaseLineMapper;
62 class MspAssignmentMapper;
63 class PmResourceAssignmentMapper;
64 } // namespace Connectivity
65 class DatesCalculator;
66 class Duration;
67 class EvaluationModeDatesResetter;
68 class EVCalculator;
69 class ExtendedAttributeCollection;
70 namespace Filters
71 {
72 class ResourceAssignmentValidByTaskFilter;
73 class ResourceAssignmentValidMaterialByTaskFilter;
74 class ResourceAssignmentValidWorkByTaskFilter;
75 } // namespace Filters
76 class FixedDurationEffortDrivenTaskPlanner;
77 class FixedDurationTaskPlanner;
78 class FixedWorkTaskPlanner;
79 namespace IO
80 {
81 namespace Html
82 {
83 class HtmlResourceAssignmentBaseLineTableReader;
84 class HtmlResourceAssignmentTableReader;
85 } // namespace Html
86 namespace MSProject
87 {
88 namespace Metadata
89 {
90 class AssignmentExtendedAttributeFlagOffsets;
91 } // namespace Metadata
92 class MPP12Reader;
93 class MPP12ResourceAssignmentWriter;
94 template <typename> class MPP14AsXResourceAssignmentReader;
95 class MPP14Reader;
96 class MPP14ResourceAssignmentWriter;
97 class MPP14TaskWriter;
98 class MPP9Reader;
99 class MPP9ResourceAssignmentReader;
100 class MPP9ResourceAssignmentWriter;
101 class MPPAssignmentExtendedAttributeReader;
102 class MPPReader;
103 class MPPResourceAssignmentWriter;
104 class MPPTimephasedDataReader;
105 class MppTimephasedDataWriter;
106 } // namespace MSProject
107 namespace PrimaveraXml
108 {
109 class PrimaveraAssignmentsNodeReader;
110 } // namespace PrimaveraXml
111 namespace Pwa
112 {
113 namespace InternalApi
114 {
115 namespace Mapping
116 {
117 class AssignmentContourDataMapper;
118 class ProjectAssignmentsMapper;
119 } // namespace Mapping
120 } // namespace InternalApi
121 } // namespace Pwa
122 namespace Xer
123 {
124 class XerAssignmentReader;
125 } // namespace Xer
126 namespace Xml
127 {
128 class ResourceAssignmentFactory;
129 class ResourceAssignmentNodeReader;
130 class ResourceAssignmentNodeWriter;
131 } // namespace Xml
132 } // namespace IO
133 namespace Leveling
134 {
135 class LevelingAlgorithm;
136 } // namespace Leveling
137 class ManualState;
138 class PercentCompleteCalculator;
139 class Project;
140 class ProjectState;
141 class ProjectWorkUpdater;
142 class Rate;
143 enum class RateScaleType;
144 enum class RateType;
145 namespace Recalculation
146 {
147 class TaskSplitCalculator;
148 } // namespace Recalculation
149 class ResourceAssignmentCollection;
150 class ResourceAssignmentTimephasedDataCollection;
151 namespace Saving
152 {
153 class HtmlResourceAssignmentBaseLineTable;
154 class PrimaveraAssignmentNodeWriter;
155 class TemplateWriter;
156 class XerAssignmentTable;
157 } // namespace Saving
158 namespace Scheduling
159 {
160 class FromFinishScheduler;
161 class FromStartScheduler;
162 } // namespace Scheduling
163 class SplitPartCollection;
164 class SplitsCalculator;
165 class Task;
166 class TaskBaselineCollection;
167 class TaskPlanner;
168 class TaskPlannerAssignmentManager;
169 namespace Timephased
170 {
171 class TimephasedDataByScaledEnumerator;
172 class TimeScaledWorkContourBuilder;
173 } // namespace Timephased
174 class TimephasedDataByScaledMaker;
175 class TimephasedDataCollection;
176 class TimephasedDataMaker;
177 enum class TimephasedDataType : int8_t;
178 class TimephasedWorkCostSelector;
179 class TimeScaledExceptions;
180 class TimeScaledParentWorkUnit;
181 class TimeScaledWorkUnit;
182 namespace Util
183 {
184 template <typename T> using ConditionDelegate = System::MulticastDelegate<bool(T)>;
185 class DateTimeInterval;
186 } // namespace Util
187 namespace Visualization
188 {
189 class ApsResourceUsageBuilder;
190 class ApsResourceUsagePage;
191 class ApsTaskUsageBuilder;
192 class ApsUsagePage;
193 class AssignmentToColumnText;
194 template <typename> class FieldToColumnText;
195 class TaskToColumnText;
196 } // namespace Visualization
197 enum class WorkContourType;
198 class WorkingTimeCollection;
199 } // namespace Tasks
200 } // namespace Aspose
201 namespace System
202 {
203 namespace Collections
204 {
205 namespace Generic
206 {
207 template <typename> class IEnumerable;
208 template <typename> class IList;
209 template <typename> class List;
210 } // namespace Generic
211 } // namespace Collections
212 class DateTime;
213 class Decimal;
214 class EventArgs;
215 class TimeSpan;
216 } // namespace System
217 
218 namespace Aspose {
219 
220 namespace Tasks {
221 
222 /// <summary>
223 /// Represents a resource assignment in a project.
224 /// </summary>
225 class ASPOSE_TASKS_SHARED_CLASS ResourceAssignment : public Aspose::Tasks::IContainer<Aspose::Tasks::AsnKey>, public System::IEquatable<System::SharedPtr<Aspose::Tasks::ResourceAssignment>>, public Aspose::Tasks::IExtendedAttributeParent, public Aspose::Tasks::IEntityWithTd, public Aspose::Tasks::IEntityWithNotes, public Aspose::Tasks::IEntityWithHyperlink
226 {
227  typedef ResourceAssignment ThisType;
228  typedef Aspose::Tasks::IContainer<Aspose::Tasks::AsnKey> BaseType;
229  typedef System::IEquatable<System::SharedPtr<Aspose::Tasks::ResourceAssignment>> BaseType1;
230  typedef Aspose::Tasks::IExtendedAttributeParent BaseType2;
232  typedef Aspose::Tasks::IEntityWithNotes BaseType4;
233  typedef Aspose::Tasks::IEntityWithHyperlink BaseType5;
234 
235  typedef ::System::BaseTypesInfo<BaseType, BaseType1, BaseType2, BaseType3, BaseType4, BaseType5> ThisTypeBaseTypesInfo;
236  ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
237 
239  friend class Aspose::Tasks::Calculations::ActualTimephasedDataUpdater;
240  friend class Aspose::Tasks::Calculations::AssignmentProjection;
241  friend class Aspose::Tasks::Calculations::RescheduleIncompleteWorkCalculator;
242  friend class Aspose::Tasks::Calculations::TaskStopResumeCalculator;
243  friend class Aspose::Tasks::Calculations::ResourceOverAllocationCalculator;
244  friend class Aspose::Tasks::Calculations::ResourceAssignmentCalculator;
245  friend class Aspose::Tasks::Calculations::ResourceAssignmentCostCalculator;
246  friend class Aspose::Tasks::Calculations::ResourceAssignmentPeakCalculator;
247  friend class Aspose::Tasks::Calculations::ResourceAssignmentWorkCalculator;
248  friend class Aspose::Tasks::Calculations::ResourceWorkCalculator;
249  friend class Aspose::Tasks::Calculations::ActualsByPercentCompleteUpdater;
250  friend class Aspose::Tasks::Calculations::TaskByAssignmentCalculator;
251  friend class Aspose::Tasks::Calculations::TaskCalculator;
252  friend class Aspose::Tasks::Calculations::ResourceAssignmentVarianceCalculator;
253  friend class Aspose::Tasks::Calculations::TimephasedDataCalculator;
254  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraAssignmentsNodeReader;
255  friend class Aspose::Tasks::Leveling::LevelingAlgorithm;
256  friend class Aspose::Tasks::Project;
257  friend class Aspose::Tasks::Task;
258  friend class Aspose::Tasks::TimephasedDataByScaledMaker;
259  friend class Aspose::Tasks::Timephased::TimeScaledWorkContourBuilder;
260  friend class Aspose::Tasks::Timephased::TimephasedDataByScaledEnumerator;
261  friend class Aspose::Tasks::Filters::ResourceAssignmentValidByTaskFilter;
262  friend class Aspose::Tasks::Filters::ResourceAssignmentValidMaterialByTaskFilter;
263  friend class Aspose::Tasks::Filters::ResourceAssignmentValidWorkByTaskFilter;
264  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::AssignmentContourDataMapper;
265  friend class Aspose::Tasks::IO::Xml::ResourceAssignmentFactory;
266  friend class Aspose::Tasks::EVCalculator;
267  friend class Aspose::Tasks::Connectivity::MpdAssignmentBaselineMapper;
268  friend class Aspose::Tasks::Connectivity::MpdAssignmentMapper;
269  template<typename FT0> friend class Aspose::Tasks::Connectivity::MpdField;
270  friend class Aspose::Tasks::Connectivity::MspAssignmentBaseLineMapper;
271  friend class Aspose::Tasks::Connectivity::MspAssignmentMapper;
272  friend class Aspose::Tasks::Connectivity::PmResourceAssignmentMapper;
273  friend class Aspose::Tasks::IO::Html::HtmlResourceAssignmentBaseLineTableReader;
274  friend class Aspose::Tasks::IO::Html::HtmlResourceAssignmentTableReader;
275  friend class Aspose::Tasks::Visualization::ApsResourceUsagePage;
276  friend class Aspose::Tasks::Visualization::ApsUsagePage;
277  friend class Aspose::Tasks::IO::MSProject::MPPAssignmentExtendedAttributeReader;
278  friend class Aspose::Tasks::IO::MSProject::MPP12Reader;
279  friend class Aspose::Tasks::IO::MSProject::MPPReader;
280  friend class Aspose::Tasks::IO::MSProject::MPP9ResourceAssignmentReader;
281  template<typename FT0> friend class Aspose::Tasks::IO::MSProject::MPP14AsXResourceAssignmentReader;
282  friend class Aspose::Tasks::IO::MSProject::MPP14Reader;
283  friend class Aspose::Tasks::IO::MSProject::MPP14ResourceAssignmentWriter;
284  friend class Aspose::Tasks::IO::MSProject::MPP14TaskWriter;
285  friend class Aspose::Tasks::IO::MSProject::MPP9Reader;
286  friend class Aspose::Tasks::IO::MSProject::Metadata::AssignmentExtendedAttributeFlagOffsets;
287  friend class Aspose::Tasks::IO::MSProject::MPPTimephasedDataReader;
288  friend class Aspose::Tasks::IO::MSProject::MPP12ResourceAssignmentWriter;
289  friend class Aspose::Tasks::IO::MSProject::MPPResourceAssignmentWriter;
290  friend class Aspose::Tasks::IO::MSProject::MPP9ResourceAssignmentWriter;
291  friend class Aspose::Tasks::IO::MSProject::MppTimephasedDataWriter;
292  friend class Aspose::Tasks::IO::Xer::XerAssignmentReader;
293  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectAssignmentsMapper;
294  friend class Aspose::Tasks::IO::Xml::ResourceAssignmentNodeReader;
295  friend class Aspose::Tasks::IO::Xml::ResourceAssignmentNodeWriter;
296  friend class Aspose::Tasks::AutoRecalculationState;
297  friend class Aspose::Tasks::ProjectState;
298  friend class Aspose::Tasks::DatesCalculator;
299  friend class Aspose::Tasks::EvaluationModeDatesResetter;
300  friend class Aspose::Tasks::TaskPlannerAssignmentManager;
301  friend class Aspose::Tasks::FixedDurationEffortDrivenTaskPlanner;
302  friend class Aspose::Tasks::TaskPlanner;
303  friend class Aspose::Tasks::FixedDurationTaskPlanner;
304  friend class Aspose::Tasks::FixedWorkTaskPlanner;
305  friend class Aspose::Tasks::ManualState;
306  friend class Aspose::Tasks::PercentCompleteCalculator;
307  friend class Aspose::Tasks::ProjectWorkUpdater;
308  friend class Aspose::Tasks::SplitsCalculator;
309  friend class Aspose::Tasks::Recalculation::TaskSplitCalculator;
311  friend class Aspose::Tasks::ResourceAssignmentTimephasedDataCollection;
312  friend class Aspose::Tasks::Saving::HtmlResourceAssignmentBaseLineTable;
313  friend class Aspose::Tasks::Saving::XerAssignmentTable;
314  friend class Aspose::Tasks::Saving::PrimaveraAssignmentNodeWriter;
315  friend class Aspose::Tasks::Saving::TemplateWriter;
316  friend class Aspose::Tasks::Scheduling::FromFinishScheduler;
317  friend class Aspose::Tasks::Scheduling::FromStartScheduler;
319  friend class Aspose::Tasks::TimephasedDataMaker;
320  friend class Aspose::Tasks::TimephasedWorkCostSelector;
321  friend class Aspose::Tasks::Visualization::ApsResourceUsageBuilder;
322  friend class Aspose::Tasks::Visualization::ApsTaskUsageBuilder;
323  friend class Aspose::Tasks::Visualization::AssignmentToColumnText;
324  template<typename FT0> friend class Aspose::Tasks::Visualization::FieldToColumnText;
325  friend class Aspose::Tasks::Visualization::TaskToColumnText;
326  friend class Aspose::Tasks::Calculations::ResourceAssignmentRateByDateEnumerator;
327 
328 public:
329 
330  /// <summary>
331  /// The task to which a resource is assigned.
332  /// </summary>
333  ASPOSE_TASKS_SHARED_API const System::SharedPtr<Aspose::Tasks::Task>& get_Task() const;
334  /// <summary>
335  /// The task to which a resource is assigned.
336  /// </summary>
337  ASPOSE_TASKS_SHARED_API void set_Task(const System::SharedPtr<Aspose::Tasks::Task>& value);
338  /// <summary>
339  /// The resource assigned to a task.
340  /// </summary>
341  ASPOSE_TASKS_SHARED_API const System::SharedPtr<Aspose::Tasks::Resource>& get_Resource() const;
342  /// <summary>
343  /// The resource assigned to a task.
344  /// </summary>
345  ASPOSE_TASKS_SHARED_API void set_Resource(const System::SharedPtr<Aspose::Tasks::Resource>& value);
346  /// <summary>
347  /// Gets unique identifier for this assignment.
348  /// </summary>
349  ASPOSE_TASKS_SHARED_API System::Nullable<System::Guid> get_Guid() const;
350  /// <summary>
351  /// Sets unique identifier for this assignment.
352  /// </summary>
353  ASPOSE_TASKS_SHARED_API void set_Guid(System::Nullable<System::Guid> value);
354  /// <summary>
355  /// Gets parent project for this assignment.
356  /// </summary>
357  ASPOSE_TASKS_SHARED_API const System::SharedPtr<Project>& get_ParentProject() const override;
358  /// <summary>
359  /// Gets AssignmentBaselineCollection object.
360  /// The collection of baseline values associated with an assignment.
361  /// </summary>
362  ASPOSE_TASKS_SHARED_API System::SharedPtr<AssignmentBaselineCollection> get_Baselines();
363  /// <summary>
364  /// Gets an instance of the ExtendedAttributeCollection class for this object.
365  /// </summary>
366  /// <remarks>Reading supported for XML format only.</remarks>
367  ASPOSE_TASKS_SHARED_API System::SharedPtr<ExtendedAttributeCollection> get_ExtendedAttributes() override;
368  /// <summary>
369  /// Sets an instance of the ExtendedAttributeCollection class for this object.
370  /// </summary>
371  /// <remarks>Reading supported for XML format only.</remarks>
372  ASPOSE_TASKS_SHARED_API void set_ExtendedAttributes(const System::SharedPtr<ExtendedAttributeCollection>& value);
373  /// <summary>
374  /// Gets the instance of <see cref="TimephasedDataCollection "></see> class containing elements of <see cref="TimephasedData"></see> class.
375  /// </summary>
376  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimephasedDataCollection> get_TimephasedData();
377  /// <summary>
378  /// Sets the instance of <see cref="TimephasedDataCollection "></see> class containing elements of <see cref="TimephasedData"></see> class.
379  /// </summary>
380  ASPOSE_TASKS_SHARED_API void set_TimephasedData(const System::SharedPtr<TimephasedDataCollection>& value);
381  /// <summary>
382  /// Gets a value of Uid.
383  /// </summary>
384  ASPOSE_TASKS_SHARED_API int32_t get_Uid() override;
385  /// <summary>
386  /// Sets a value of Uid.
387  /// </summary>
388  ASPOSE_TASKS_SHARED_API void set_Uid(int32_t value);
389  /// <summary>
390  /// Gets a value of PercentWorkComplete.
391  /// </summary>
392  ASPOSE_TASKS_SHARED_API int32_t get_PercentWorkComplete();
393  /// <summary>
394  /// Sets a value of PercentWorkComplete.
395  /// </summary>
396  ASPOSE_TASKS_SHARED_API void set_PercentWorkComplete(int32_t value);
397  /// <summary>
398  /// Gets a value of ActualCost.
399  /// </summary>
400  ASPOSE_TASKS_SHARED_API System::Decimal get_ActualCost();
401  /// <summary>
402  /// Sets a value of ActualCost.
403  /// </summary>
404  ASPOSE_TASKS_SHARED_API void set_ActualCost(System::Decimal value);
405  /// <summary>
406  /// Gets a value of ActualFinish.
407  /// </summary>
408  ASPOSE_TASKS_SHARED_API System::DateTime get_ActualFinish();
409  /// <summary>
410  /// Sets a value of ActualFinish.
411  /// </summary>
412  ASPOSE_TASKS_SHARED_API void set_ActualFinish(System::DateTime value);
413  /// <summary>
414  /// Gets a value of ActualOvertimeCost.
415  /// </summary>
416  ASPOSE_TASKS_SHARED_API System::Decimal get_ActualOvertimeCost();
417  /// <summary>
418  /// Sets a value of ActualOvertimeCost.
419  /// </summary>
420  ASPOSE_TASKS_SHARED_API void set_ActualOvertimeCost(System::Decimal value);
421  /// <summary>
422  /// Gets a value of ActualStart.
423  /// </summary>
424  ASPOSE_TASKS_SHARED_API System::DateTime get_ActualStart();
425  /// <summary>
426  /// Sets a value of ActualStart.
427  /// </summary>
428  ASPOSE_TASKS_SHARED_API void set_ActualStart(System::DateTime value);
429  /// <summary>
430  /// Gets a value of ActualWork.
431  /// </summary>
432  ASPOSE_TASKS_SHARED_API Duration get_ActualWork();
433  /// <summary>
434  /// Sets a value of ActualWork.
435  /// </summary>
436  ASPOSE_TASKS_SHARED_API void set_ActualWork(Duration value);
437  /// <summary>
438  /// Gets a value of ACWP.
439  /// </summary>
440  ASPOSE_TASKS_SHARED_API double get_ACWP();
441  /// <summary>
442  /// Sets a value of ACWP.
443  /// </summary>
444  ASPOSE_TASKS_SHARED_API void set_ACWP(double value);
445  /// <summary>
446  /// Gets a value indicating whether Confirmed is set or not.
447  /// </summary>
448  ASPOSE_TASKS_SHARED_API bool get_Confirmed();
449  /// <summary>
450  /// Sets a value indicating whether Confirmed is set or not.
451  /// </summary>
452  ASPOSE_TASKS_SHARED_API void set_Confirmed(bool value);
453  /// <summary>
454  /// Gets a value of Cost.
455  /// </summary>
456  ASPOSE_TASKS_SHARED_API System::Decimal get_Cost();
457  /// <summary>
458  /// Sets a value of Cost.
459  /// </summary>
460  ASPOSE_TASKS_SHARED_API void set_Cost(System::Decimal value);
461  /// <summary>
462  /// Gets a value of CostRateTableType.
463  /// </summary>
464  ASPOSE_TASKS_SHARED_API RateType get_CostRateTableType();
465  /// <summary>
466  /// Sets a value of CostRateTableType.
467  /// </summary>
468  ASPOSE_TASKS_SHARED_API void set_CostRateTableType(RateType value);
469  /// <summary>
470  /// Gets a value of CostVariance.
471  /// </summary>
472  ASPOSE_TASKS_SHARED_API double get_CostVariance();
473  /// <summary>
474  /// Sets a value of CostVariance.
475  /// </summary>
476  ASPOSE_TASKS_SHARED_API void set_CostVariance(double value);
477  /// <summary>
478  /// Gets a value of CV.
479  /// </summary>
480  ASPOSE_TASKS_SHARED_API double get_CV();
481  /// <summary>
482  /// Sets a value of CV.
483  /// </summary>
484  ASPOSE_TASKS_SHARED_API void set_CV(double value);
485  /// <summary>
486  /// Gets a value of Delay.
487  /// </summary>
488  ASPOSE_TASKS_SHARED_API Duration get_Delay();
489  /// <summary>
490  /// Sets a value of Delay.
491  /// </summary>
492  ASPOSE_TASKS_SHARED_API void set_Delay(Duration value);
493  /// <summary>
494  /// Gets a value of Finish.
495  /// </summary>
496  ASPOSE_TASKS_SHARED_API System::DateTime get_Finish();
497  /// <summary>
498  /// Sets a value of Finish.
499  /// </summary>
500  ASPOSE_TASKS_SHARED_API void set_Finish(System::DateTime value);
501  /// <summary>
502  /// Gets a value of FinishVariance.
503  /// </summary>
504  ASPOSE_TASKS_SHARED_API Duration get_FinishVariance();
505  /// <summary>
506  /// Sets a value of FinishVariance.
507  /// </summary>
508  ASPOSE_TASKS_SHARED_API void set_FinishVariance(Duration value);
509  /// <summary>
510  /// Gets a value of Hyperlink.
511  /// </summary>
512  ASPOSE_TASKS_SHARED_API System::String get_Hyperlink() override;
513  /// <summary>
514  /// Sets a value of Hyperlink.
515  /// </summary>
516  ASPOSE_TASKS_SHARED_API void set_Hyperlink(System::String value) override;
517  /// <summary>
518  /// Gets a value of HyperlinkAddress.
519  /// </summary>
520  ASPOSE_TASKS_SHARED_API System::String get_HyperlinkAddress() override;
521  /// <summary>
522  /// Sets a value of HyperlinkAddress.
523  /// </summary>
524  ASPOSE_TASKS_SHARED_API void set_HyperlinkAddress(System::String value) override;
525  /// <summary>
526  /// Gets a value of HyperlinkSubAddress.
527  /// </summary>
528  ASPOSE_TASKS_SHARED_API System::String get_HyperlinkSubAddress() override;
529  /// <summary>
530  /// Sets a value of HyperlinkSubAddress.
531  /// </summary>
532  ASPOSE_TASKS_SHARED_API void set_HyperlinkSubAddress(System::String value) override;
533  /// <summary>
534  /// Gets a value of WorkVariance.
535  /// </summary>
536  ASPOSE_TASKS_SHARED_API Duration get_WorkVariance();
537  /// <summary>
538  /// Sets a value of WorkVariance.
539  /// </summary>
540  ASPOSE_TASKS_SHARED_API void set_WorkVariance(Duration value);
541  /// <summary>
542  /// Gets a value indicating whether HasFixedRateUnits is set or not.
543  /// </summary>
544  ASPOSE_TASKS_SHARED_API bool get_HasFixedRateUnits();
545  /// <summary>
546  /// Sets a value indicating whether HasFixedRateUnits is set or not.
547  /// </summary>
548  ASPOSE_TASKS_SHARED_API void set_HasFixedRateUnits(bool value);
549  /// <summary>
550  /// Gets a value indicating whether FixedMaterial is set or not.
551  /// </summary>
552  ASPOSE_TASKS_SHARED_API bool get_FixedMaterial();
553  /// <summary>
554  /// Sets a value indicating whether FixedMaterial is set or not.
555  /// </summary>
556  ASPOSE_TASKS_SHARED_API void set_FixedMaterial(bool value);
557  /// <summary>
558  /// Gets a value of LevelingDelay.
559  /// </summary>
560  ASPOSE_TASKS_SHARED_API Duration get_LevelingDelay();
561  /// <summary>
562  /// Sets a value of LevelingDelay.
563  /// </summary>
564  ASPOSE_TASKS_SHARED_API void set_LevelingDelay(Duration value);
565  /// <summary>
566  /// Gets a value indicating whether LinkedFields is set or not.
567  /// </summary>
568  ASPOSE_TASKS_SHARED_API bool get_LinkedFields();
569  /// <summary>
570  /// Sets a value indicating whether LinkedFields is set or not.
571  /// </summary>
572  ASPOSE_TASKS_SHARED_API void set_LinkedFields(bool value);
573  /// <summary>
574  /// Gets a value indicating whether Milestone is set or not.
575  /// </summary>
576  ASPOSE_TASKS_SHARED_API bool get_Milestone();
577  /// <summary>
578  /// Sets a value indicating whether Milestone is set or not.
579  /// </summary>
580  ASPOSE_TASKS_SHARED_API void set_Milestone(bool value);
581  /// <summary>
582  /// Gets notes' plain text extracted from RTF data.
583  /// </summary>
584  ASPOSE_TASKS_SHARED_API System::String get_NotesText() override;
585  /// <summary>
586  /// Sets notes' plain text extracted from RTF data.
587  /// </summary>
588  ASPOSE_TASKS_SHARED_API void set_NotesText(System::String value) override;
589  /// <summary>
590  /// Gets the text notes in RTF format.
591  /// <remarks>Supported for MPP formats only.</remarks>
592  /// </summary>
593  ASPOSE_TASKS_SHARED_API System::String get_NotesRTF() override;
594  /// <summary>
595  /// Sets the text notes in RTF format.
596  /// <remarks>Supported for MPP formats only.</remarks>
597  /// </summary>
598  ASPOSE_TASKS_SHARED_API void set_NotesRTF(System::String value) override;
599  /// <summary>
600  /// Gets a value indicating whether Overallocated is set or not.
601  /// </summary>
602  ASPOSE_TASKS_SHARED_API bool get_Overallocated();
603  /// <summary>
604  /// Sets a value indicating whether Overallocated is set or not.
605  /// </summary>
606  ASPOSE_TASKS_SHARED_API void set_Overallocated(bool value);
607  /// <summary>
608  /// Gets a value of OvertimeCost.
609  /// </summary>
610  ASPOSE_TASKS_SHARED_API System::Decimal get_OvertimeCost();
611  /// <summary>
612  /// Sets a value of OvertimeCost.
613  /// </summary>
614  ASPOSE_TASKS_SHARED_API void set_OvertimeCost(System::Decimal value);
615  /// <summary>
616  /// Gets a value of OvertimeWork.
617  /// </summary>
618  ASPOSE_TASKS_SHARED_API Duration get_OvertimeWork();
619  /// <summary>
620  /// Sets a value of OvertimeWork.
621  /// </summary>
622  ASPOSE_TASKS_SHARED_API void set_OvertimeWork(Duration value);
623  /// <summary>
624  /// Gets a value of PeakUnits.
625  /// </summary>
626  ASPOSE_TASKS_SHARED_API double get_PeakUnits();
627  /// <summary>
628  /// Sets a value of PeakUnits.
629  /// </summary>
630  ASPOSE_TASKS_SHARED_API void set_PeakUnits(double value);
631  /// <summary>
632  /// Gets a value of RegularWork.
633  /// </summary>
634  ASPOSE_TASKS_SHARED_API Duration get_RegularWork();
635  /// <summary>
636  /// Sets a value of RegularWork.
637  /// </summary>
638  ASPOSE_TASKS_SHARED_API void set_RegularWork(Duration value);
639  /// <summary>
640  /// Gets a value of RemainingCost.
641  /// </summary>
642  ASPOSE_TASKS_SHARED_API System::Decimal get_RemainingCost();
643  /// <summary>
644  /// Sets a value of RemainingCost.
645  /// </summary>
646  ASPOSE_TASKS_SHARED_API void set_RemainingCost(System::Decimal value);
647  /// <summary>
648  /// Gets a value of RemainingOvertimeCost.
649  /// </summary>
650  ASPOSE_TASKS_SHARED_API System::Decimal get_RemainingOvertimeCost();
651  /// <summary>
652  /// Sets a value of RemainingOvertimeCost.
653  /// </summary>
654  ASPOSE_TASKS_SHARED_API void set_RemainingOvertimeCost(System::Decimal value);
655  /// <summary>
656  /// Gets a value of RemainingOvertimeWork.
657  /// </summary>
658  ASPOSE_TASKS_SHARED_API Duration get_RemainingOvertimeWork();
659  /// <summary>
660  /// Sets a value of RemainingOvertimeWork.
661  /// </summary>
662  ASPOSE_TASKS_SHARED_API void set_RemainingOvertimeWork(Duration value);
663  /// <summary>
664  /// Gets a value of RemainingWork.
665  /// </summary>
666  ASPOSE_TASKS_SHARED_API Duration get_RemainingWork();
667  /// <summary>
668  /// Sets a value of RemainingWork.
669  /// </summary>
670  ASPOSE_TASKS_SHARED_API void set_RemainingWork(Duration value);
671  /// <summary>
672  /// Gets a value indicating whether ResponsePending is set or not.
673  /// </summary>
674  ASPOSE_TASKS_SHARED_API bool get_ResponsePending();
675  /// <summary>
676  /// Sets a value indicating whether ResponsePending is set or not.
677  /// </summary>
678  ASPOSE_TASKS_SHARED_API void set_ResponsePending(bool value);
679  /// <summary>
680  /// Gets a value of Start.
681  /// </summary>
682  ASPOSE_TASKS_SHARED_API System::DateTime get_Start() override;
683  /// <summary>
684  /// Sets a value of Start.
685  /// </summary>
686  ASPOSE_TASKS_SHARED_API void set_Start(System::DateTime value);
687  /// <summary>
688  /// Gets a value of Stop.
689  /// </summary>
690  ASPOSE_TASKS_SHARED_API System::DateTime get_Stop();
691  /// <summary>
692  /// Sets a value of Stop.
693  /// </summary>
694  ASPOSE_TASKS_SHARED_API void set_Stop(System::DateTime value);
695  /// <summary>
696  /// Gets a value of Resume.
697  /// </summary>
698  ASPOSE_TASKS_SHARED_API System::DateTime get_Resume();
699  /// <summary>
700  /// Sets a value of Resume.
701  /// </summary>
702  ASPOSE_TASKS_SHARED_API void set_Resume(System::DateTime value);
703  /// <summary>
704  /// Gets a value of StartVariance.
705  /// </summary>
706  ASPOSE_TASKS_SHARED_API Duration get_StartVariance();
707  /// <summary>
708  /// Sets a value of StartVariance.
709  /// </summary>
710  ASPOSE_TASKS_SHARED_API void set_StartVariance(Duration value);
711  /// <summary>
712  /// Gets a value indicating whether Summary is set or not.
713  /// </summary>
714  ASPOSE_TASKS_SHARED_API bool get_Summary();
715  /// <summary>
716  /// Sets a value indicating whether Summary is set or not.
717  /// </summary>
718  ASPOSE_TASKS_SHARED_API void set_Summary(bool value);
719  /// <summary>
720  /// Gets a value of SV.
721  /// </summary>
722  ASPOSE_TASKS_SHARED_API double get_SV();
723  /// <summary>
724  /// Sets a value of SV.
725  /// </summary>
726  ASPOSE_TASKS_SHARED_API void set_SV(double value);
727  /// <summary>
728  /// Gets a value of Units.
729  /// </summary>
730  ASPOSE_TASKS_SHARED_API double get_Units();
731  /// <summary>
732  /// Sets a value of Units.
733  /// </summary>
734  ASPOSE_TASKS_SHARED_API void set_Units(double value);
735  /// <summary>
736  /// Gets a value indicating whether UpdateNeeded is set or not.
737  /// </summary>
738  ASPOSE_TASKS_SHARED_API bool get_UpdateNeeded();
739  /// <summary>
740  /// Sets a value indicating whether UpdateNeeded is set or not.
741  /// </summary>
742  ASPOSE_TASKS_SHARED_API void set_UpdateNeeded(bool value);
743  /// <summary>
744  /// Gets a value of VAC.
745  /// </summary>
746  ASPOSE_TASKS_SHARED_API double get_VAC();
747  /// <summary>
748  /// Sets a value of VAC.
749  /// </summary>
750  ASPOSE_TASKS_SHARED_API void set_VAC(double value);
751  /// <summary>
752  /// Gets a value of Work.
753  /// </summary>
754  ASPOSE_TASKS_SHARED_API Duration get_Work();
755  /// <summary>
756  /// Sets a value of Work.
757  /// </summary>
758  ASPOSE_TASKS_SHARED_API void set_Work(Duration value);
759  /// <summary>
760  /// Gets a value of WorkContour.
761  /// </summary>
762  ASPOSE_TASKS_SHARED_API WorkContourType get_WorkContour();
763  /// <summary>
764  /// Sets a value of WorkContour.
765  /// </summary>
766  ASPOSE_TASKS_SHARED_API void set_WorkContour(WorkContourType value);
767  /// <summary>
768  /// Gets a value of BCWS.
769  /// </summary>
770  ASPOSE_TASKS_SHARED_API double get_BCWS();
771  /// <summary>
772  /// Sets a value of BCWS.
773  /// </summary>
774  ASPOSE_TASKS_SHARED_API void set_BCWS(double value);
775  /// <summary>
776  /// Gets a value of BCWP.
777  /// </summary>
778  ASPOSE_TASKS_SHARED_API double get_BCWP();
779  /// <summary>
780  /// Sets a value of BCWP.
781  /// </summary>
782  ASPOSE_TASKS_SHARED_API void set_BCWP(double value);
783  /// <summary>
784  /// Gets a value of BookingType.
785  /// </summary>
786  ASPOSE_TASKS_SHARED_API Aspose::Tasks::BookingType get_BookingType();
787  /// <summary>
788  /// Sets a value of BookingType.
789  /// </summary>
790  ASPOSE_TASKS_SHARED_API void set_BookingType(Aspose::Tasks::BookingType value);
791  /// <summary>
792  /// Gets a value of ActualWorkProtected.
793  /// </summary>
794  ASPOSE_TASKS_SHARED_API Duration get_ActualWorkProtected();
795  /// <summary>
796  /// Sets a value of ActualWorkProtected.
797  /// </summary>
798  ASPOSE_TASKS_SHARED_API void set_ActualWorkProtected(Duration value);
799  /// <summary>
800  /// Gets a value of ActualOvertimeWorkProtected.
801  /// </summary>
802  ASPOSE_TASKS_SHARED_API Duration get_ActualOvertimeWorkProtected();
803  /// <summary>
804  /// Sets a value of ActualOvertimeWorkProtected.
805  /// </summary>
806  ASPOSE_TASKS_SHARED_API void set_ActualOvertimeWorkProtected(Duration value);
807  /// <summary>
808  /// Gets a value of ActualOvertimeWork.
809  /// </summary>
810  ASPOSE_TASKS_SHARED_API Duration get_ActualOvertimeWork();
811  /// <summary>
812  /// Sets a value of ActualOvertimeWork.
813  /// </summary>
814  ASPOSE_TASKS_SHARED_API void set_ActualOvertimeWork(Duration value);
815  /// <summary>
816  /// Gets a value of Created.
817  /// </summary>
818  ASPOSE_TASKS_SHARED_API System::DateTime get_Created();
819  /// <summary>
820  /// Sets a value of Created.
821  /// </summary>
822  ASPOSE_TASKS_SHARED_API void set_Created(System::DateTime value);
823  /// <summary>
824  /// Gets a value of AssignmentOwner.
825  /// </summary>
826  ASPOSE_TASKS_SHARED_API System::String get_AssignmentOwner();
827  /// <summary>
828  /// Sets a value of AssignmentOwner.
829  /// </summary>
830  ASPOSE_TASKS_SHARED_API void set_AssignmentOwner(const System::String& value);
831  /// <summary>
832  /// Gets a value of AssignmentOwnerGuid.
833  /// </summary>
834  ASPOSE_TASKS_SHARED_API System::String get_AssignmentOwnerGuid();
835  /// <summary>
836  /// Sets a value of AssignmentOwnerGuid.
837  /// </summary>
838  ASPOSE_TASKS_SHARED_API void set_AssignmentOwnerGuid(const System::String& value);
839  /// <summary>
840  /// Gets a value of BudgetCost.
841  /// </summary>
842  ASPOSE_TASKS_SHARED_API System::Decimal get_BudgetCost();
843  /// <summary>
844  /// Sets a value of BudgetCost.
845  /// </summary>
846  ASPOSE_TASKS_SHARED_API void set_BudgetCost(System::Decimal value);
847  /// <summary>
848  /// Gets a value of BudgetWork.
849  /// </summary>
850  ASPOSE_TASKS_SHARED_API Duration get_BudgetWork();
851  /// <summary>
852  /// Sets a value of BudgetWork.
853  /// </summary>
854  ASPOSE_TASKS_SHARED_API void set_BudgetWork(Duration value);
855  /// <summary>
856  /// Gets a value of RateScale.
857  /// </summary>
858  ASPOSE_TASKS_SHARED_API RateScaleType get_RateScale();
859  /// <summary>
860  /// Sets a value of RateScale.
861  /// </summary>
862  ASPOSE_TASKS_SHARED_API void set_RateScale(RateScaleType value);
863 
864  /// <summary>
865  /// Returns the value to which the property is mapped in this container.
866  /// </summary>
867  /// <param name="key">the specified property key. <see cref="Asn"></see> for getting the property key.</param>
868  /// <typeparam name="T">the type of the mapped value.</typeparam>
869  /// <returns>the value to which the property is mapped in this container.</returns>
870  template <typename T>
871  T Get(const Key<T, AsnKey>& key) const
872  {
873  if (key.get_KeyType() == Aspose::Tasks::AsnKey::Task)
874  {
875  return System::ExplicitCast<T>(System::ExplicitCast<System::Object>(this->get_Task()));
876  }
877 
878  if (key.get_KeyType() == Aspose::Tasks::AsnKey::Resource)
879  {
880  return System::ExplicitCast<T>(System::ExplicitCast<System::Object>(this->get_Resource()));
881  }
882  System::SharedPtr<System::Object> res;
883  if (this->GetCalculatedValue(key.get_KeyType(), res))
884  {
885  return System::ExplicitCast<T>(res);
886  }
887 
888  return this->container->template CheckPropAndGet<T>(key);
889  }
890 
891  /// <summary>
892  /// Maps the specified property to the specified value in this container.
893  /// </summary>
894  /// <param name="key">the specified property key. <see cref="Asn"></see> for getting the property key.</param>
895  /// <param name="val">the value.</param>
896  /// <typeparam name="T">the type of the mapped value.</typeparam>
897  template <typename T>
898  void Set(const Key<T, AsnKey>& key, const T& val)
899  {
900 
901  if (key.get_KeyType() == Aspose::Tasks::AsnKey::Task)
902  {
903  this->set_Task(System::ExplicitCast<Aspose::Tasks::Task>(System::ExplicitCast<System::Object>(val)));
904  }
905 
906  if (key.get_KeyType() == Aspose::Tasks::AsnKey::Resource)
907  {
908  this->set_Resource(System::ExplicitCast<Aspose::Tasks::Resource>(System::ExplicitCast<System::Object>(val)));
909  }
910 
911  // Please do not remove this assignment due to C++ porting issues
912  auto castVal = System::ExplicitCast<System::Object>(val);
913  if (this->SetCalculatedValue(key.get_KeyType(), castVal))
914  {
915  return;
916  }
917 
918  this->container->template CheckPropAndSet<T>(key, val);
919 
920  if (key.get_KeyType() == Aspose::Tasks::AsnKey::WorkContour)
921  {
922  this->set_IsWorkContourChanged(true);
923  }
924  }
925 
926  /// <summary>
927  /// Deletes resource assignment from project assignments collection.
928  /// </summary>
929  ASPOSE_TASKS_SHARED_API void Delete();
930  /// <summary>
931  /// Returns a value indicating whether this instance is equal to a specified instance of the <see cref="ResourceAssignment"></see> class.
932  /// </summary>
933  /// <param name="other">The specified instance of the <see cref="ResourceAssignment"></see> class to compare with this instance.</param>
934  /// <returns><b>True</b> if the specified instance of the <see cref="ResourceAssignment"></see> class has the same UID value as this instance; otherwise, <b>false</b>.</returns>
935  ASPOSE_TASKS_SHARED_API bool Equals(System::SharedPtr<ResourceAssignment> other) override;
936  /// <summary>
937  /// Returns a value indicating whether this instance is equal to a specified object.
938  /// </summary>
939  /// <param name="obj">The object to compare with this instance.</param>
940  /// <returns><b>True</b> if o is a ResourceAssignment that assign the same resource and task as this instance; otherwise, <b>false</b>.</returns>
941  ASPOSE_TASKS_SHARED_API bool Equals(System::SharedPtr<System::Object> obj) override;
942  /// <summary>
943  /// Returns short string representation of the instance of the <see cref="ResourceAssignment"></see> class.
944  /// The exact details of the representation are unspecified and subject to change.
945  /// </summary>
946  /// <returns>short string which represents assignment object.</returns>
947  ASPOSE_TASKS_SHARED_API System::String ToString() const override;
948  /// <summary>
949  /// Returns a hash code value for the instance of the <see cref="ResourceAssignment"></see> class.
950  /// </summary>
951  /// <returns>returns a hash code value for this object.</returns>
952  ASPOSE_TASKS_SHARED_API int32_t GetHashCode() const override;
953  /// <summary>
954  /// Generates list of time phased data based on the task duration and the scheduled start date.
955  /// </summary>
956  /// <param name="calendar">The calendar to generate time phased data from.</param>
957  ASPOSE_TASKS_SHARED_API void TimephasedDataFromTaskDuration(const System::SharedPtr<Calendar>& calendar);
958  /// <summary>
959  /// Generates a list of time phased data.
960  /// </summary>
961  /// <param name="start">The specified start date.</param>
962  /// <param name="time">The specified working time.</param>
963  /// <param name="calendar">The specified working calendar.</param>
964  /// <param name="list">The list of time phased data.</param>
965  /// <param name="isWorking">The specified flag which specifies whether time-phased data is working or not.</param>
966  /// <param name="type">The specified time-phased data type.</param>
967  /// <returns>A maximum date from list or start date if list is empty.</returns>
968  ASPOSE_TASKS_SHARED_API System::DateTime MakeTPs(System::DateTime start, System::TimeSpan time, const System::SharedPtr<Calendar>& calendar, const System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Aspose::Tasks::TimephasedData>>>& list, bool isWorking, int32_t type);
969  /// <summary>
970  /// Splits task into two parts.
971  /// </summary>
972  /// <param name="start">The beginning of work interruption to split based on.</param>
973  /// <param name="finish">The end of work interruption to split based on.</param>
974  /// <param name="calendar">The calendar to split based on.</param>
975  /// <exception cref="ArgumentOutOfRangeException">Throws when start date is less than the assignment start date.</exception>
976  /// <exception cref="ArgumentOutOfRangeException">Throws when finish date is greater than the assignment finish date.</exception>
977  ASPOSE_TASKS_SHARED_API void SplitTask(System::DateTime start, System::DateTime finish, const System::SharedPtr<Calendar>& calendar);
978  /// <summary>
979  /// Returns the instance <see cref="TimephasedDataCollection"></see> class containing instances of <see cref="TimephasedData"></see> class within given start and end dates of specified <see cref="TimephasedDataType"></see>.
980  /// </summary>
981  /// <param name="start">The start date for the time phased data.</param>
982  /// <param name="end">The end date for the time phased data.</param>
983  /// <param name="timephasedType">The type of time phased data (<see cref="Aspose::Tasks::TimephasedDataType"></see>).</param>
984  /// <returns>returns a list which contains instances of <see cref="Aspose::Tasks::TimephasedData"></see> class.</returns>
985  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimephasedDataCollection> GetTimephasedData(System::DateTime start, System::DateTime end, TimephasedDataType timephasedType);
986  /// <summary>
987  /// Returns <see cref="TimephasedDataCollection"></see> object with the instances of <see cref="TimephasedData"></see> class within given start and end dates of <see cref="TimephasedDataType::AssignmentWork"></see>.
988  /// </summary>
989  /// <param name="start">The start date for the time phased data.</param>
990  /// <param name="end">The end date for the time phased data.</param>
991  /// <returns>returns a list containing instances of <see cref="Aspose::Tasks::TimephasedData"></see> class.</returns>
992  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimephasedDataCollection> GetTimephasedData(System::DateTime start, System::DateTime end);
993  /// <summary>
994  /// Gets amount of timephased work for the specified date time interval.
995  /// </summary>
996  /// <param name="start">Start of the date time interval.</param>
997  /// <param name="end">End of the date time interval.</param>
998  /// <param name="timephasedDataType">Type of the timephased data to use.</param>
999  /// <returns></returns>
1000  ASPOSE_TASKS_SHARED_API System::TimeSpan GetTimephasedWork(System::DateTime start, System::DateTime end, TimephasedDataType timephasedDataType);
1001  /// <summary>
1002  /// Gets amount of timephased work for the specified date time interval.
1003  /// </summary>
1004  /// <param name="start">Start of the date time interval.</param>
1005  /// <param name="end">End of the date time interval.</param>
1006  /// <returns></returns>
1007  ASPOSE_TASKS_SHARED_API System::TimeSpan GetTimephasedWork(System::DateTime start, System::DateTime end);
1008  /// <summary>
1009  /// Sets units for assignment of a material resource with variable material consumption.
1010  /// The variable material consumption means that as the assignment duration changes, the quantity of materials used changes proportionally.
1011  /// </summary>
1012  /// <param name="units">Number of units accrued at the time period.</param>
1013  /// <param name="rateScaleType">Time period at which the unit value is accrued.</param>
1014  /// <remarks>For example, to set '123/month', SetUnitsScaled(123D, RateScaleType.Month) should be called.</remarks>
1015  /// <exception cref="InvalidOperationException">If the method is called for assignment of non-material resource.</exception>
1016  ASPOSE_TASKS_SHARED_API void SetMaterialResourceUnits(double units, RateScaleType rateScaleType);
1017  static bool _anonymous_method_0(System::SharedPtr<Aspose::Tasks::TimephasedData> td);
1018  static bool _anonymous_method_1(System::SharedPtr<Aspose::Tasks::TimephasedData> td);
1019  static bool _anonymous_method_2(System::SharedPtr<Aspose::Tasks::TimephasedData> td);
1020  static bool _anonymous_method_3(System::SharedPtr<Aspose::Tasks::TimephasedData> td);
1021  static bool _anonymous_method_4(System::SharedPtr<Aspose::Tasks::TimephasedData> td);
1022  static bool _anonymous_method_5(System::SharedPtr<Aspose::Tasks::TimephasedData> td);
1023 
1024 protected:
1025 
1026  /// <summary>
1027  /// Gets parent project for this assignment.
1028  /// </summary>
1029  ASPOSE_TASKS_SHARED_API void set_ParentProject(const System::SharedPtr<Project>& value);
1030  /// <summary>
1031  /// Gets AssignmentBaselineCollection object.
1032  /// The collection of baseline values associated with an assignment.
1033  /// </summary>
1034  ASPOSE_TASKS_SHARED_API void set_Baselines(const System::SharedPtr<AssignmentBaselineCollection>& value);
1035  ASPOSE_TASKS_SHARED_API int32_t get_ExtendedAttributesCount();
1036  ASPOSE_TASKS_SHARED_API int32_t get_BaselineCount();
1037  ASPOSE_TASKS_SHARED_API bool get_IsShared() const;
1038  ASPOSE_TASKS_SHARED_API void set_IsShared(bool value);
1039  ASPOSE_TASKS_SHARED_API bool get_IsWork();
1040  ASPOSE_TASKS_SHARED_API bool get_IsFlatContour();
1041  ASPOSE_TASKS_SHARED_API bool get_IsMaterial();
1042  ASPOSE_TASKS_SHARED_API bool get_IsCost();
1043  ASPOSE_TASKS_SHARED_API System::Guid get_TempGuid() const;
1044  ASPOSE_TASKS_SHARED_API void set_TempGuid(System::Guid value);
1045  ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> get_AssignmentCalendar();
1046  ASPOSE_TASKS_SHARED_API void set_AssignmentCalendar(const System::SharedPtr<Calendar>& value);
1047  ASPOSE_TASKS_SHARED_API bool get_IsValid();
1048  ASPOSE_TASKS_SHARED_API bool get_IsValidWork();
1049  ASPOSE_TASKS_SHARED_API bool get_IsSharedWork();
1050  /// <summary>
1051  /// Gets the assignment split parts.
1052  /// </summary>
1053  ASPOSE_TASKS_SHARED_API System::SharedPtr<SplitPartCollection> get_SplitParts();
1054  /// <summary>
1055  /// Sets the assignment split parts.
1056  /// </summary>
1057  ASPOSE_TASKS_SHARED_API void set_SplitParts(const System::SharedPtr<SplitPartCollection>& value);
1058  ASPOSE_TASKS_SHARED_API System::SharedPtr<Rate> get_CurrentRate();
1059  ASPOSE_TASKS_SHARED_API void set_CurrentRate(const System::SharedPtr<Rate>& value);
1060  ASPOSE_TASKS_SHARED_API const System::ArrayPtr<uint8_t>& get_WorkCompleteRawTD() const;
1061  ASPOSE_TASKS_SHARED_API const System::ArrayPtr<uint8_t>& get_WorkIncompleteRawTD() const;
1062  ASPOSE_TASKS_SHARED_API const System::ArrayPtr<uint8_t>& get_WorkOverallocatedRawTD() const;
1063  ASPOSE_TASKS_SHARED_API const System::ArrayPtr<uint8_t>& get_WorkingExceptionsRaw() const;
1064  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimeScaledParentWorkUnit> get_ScaledWorkComplete() const;
1065  ASPOSE_TASKS_SHARED_API void set_ScaledWorkComplete(const System::SharedPtr<TimeScaledParentWorkUnit>& value);
1066  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimeScaledParentWorkUnit> get_ScaledWorkIncomplete() const;
1067  ASPOSE_TASKS_SHARED_API void set_ScaledWorkIncomplete(const System::SharedPtr<TimeScaledParentWorkUnit>& value);
1068  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimeScaledParentWorkUnit> get_ScaledWorkOverallocated() const;
1069  ASPOSE_TASKS_SHARED_API const System::SharedPtr<Aspose::Tasks::TimeScaledExceptions>& get_TimeScaledExceptions() const;
1070  ASPOSE_TASKS_SHARED_API void set_TimeScaledExceptions(const System::SharedPtr<Aspose::Tasks::TimeScaledExceptions>& value);
1071  ASPOSE_TASKS_SHARED_API double get_PlannedValueNoCostUse() const;
1072  ASPOSE_TASKS_SHARED_API void set_PlannedValueNoCostUse(double value);
1073  ASPOSE_TASKS_SHARED_API bool get_IsCompleted();
1074  ASPOSE_TASKS_SHARED_API bool get_IsTimephasedDataInitialized();
1075  ASPOSE_TASKS_SHARED_API bool get_IsWorkContourChanged() const;
1076  ASPOSE_TASKS_SHARED_API void set_IsWorkContourChanged(bool value);
1077 
1078  /// <summary>
1079  /// Initializes a new instance of the <see cref="ResourceAssignment"></see> class.
1080  /// </summary>
1081  ASPOSE_TASKS_SHARED_API ResourceAssignment(const System::SharedPtr<Project>& project);
1082 
1083  ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(ResourceAssignment, CODEPORTING_ARGS(const System::SharedPtr<Project>& project));
1084 
1085  /// <summary>
1086  /// Initializes a new instance of the <see cref="ResourceAssignment"></see> class.
1087  /// </summary>
1088  /// <param name="project">project</param>
1089  /// <param name="resource">resource</param>
1090  ASPOSE_TASKS_SHARED_API ResourceAssignment(const System::SharedPtr<Project>& project, const System::SharedPtr<Aspose::Tasks::Resource>& resource);
1091 
1092  ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(ResourceAssignment, CODEPORTING_ARGS(const System::SharedPtr<Project>& project, const System::SharedPtr<Aspose::Tasks::Resource>& resource));
1093 
1094  /// <summary>
1095  /// Initializes a new instance of the <see cref="ResourceAssignment"></see> class.
1096  /// </summary>
1097  /// <param name="task">task</param>
1098  /// <param name="resource">resource</param>
1099  ASPOSE_TASKS_SHARED_API ResourceAssignment(const System::SharedPtr<Aspose::Tasks::Task>& task, const System::SharedPtr<Aspose::Tasks::Resource>& resource);
1100 
1101  ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(ResourceAssignment, CODEPORTING_ARGS(const System::SharedPtr<Aspose::Tasks::Task>& task, const System::SharedPtr<Aspose::Tasks::Resource>& resource));
1102 
1103  /// <summary>
1104  /// Initializes a new instance of the <see cref="ResourceAssignment"></see> class.
1105  /// </summary>
1106  ASPOSE_TASKS_SHARED_API ResourceAssignment();
1107 
1108  ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(ResourceAssignment, CODEPORTING_ARGS());
1109  template <typename T>
1110  void SetDirectly(Key<T, AsnKey> key, T val)
1111  {
1112  this->container->template CheckPropAndSet<T>(key, val);
1113  }
1114 
1115  ASPOSE_TASKS_SHARED_API void SetMppTimephasedRawData(const System::ArrayPtr<uint8_t>& completeWorkRaw, const System::ArrayPtr<uint8_t>& remainingWorkRaw, const System::ArrayPtr<uint8_t>& overallocatedWorkRaw, const System::ArrayPtr<uint8_t>& workingExceptionRaw, const System::SharedPtr<TimeScaledParentWorkUnit>& scaledCompleteWork, const System::SharedPtr<TimeScaledParentWorkUnit>& scaledRemainingWork, const System::SharedPtr<TimeScaledParentWorkUnit>& scaledOverallocatedWork, const System::SharedPtr<Aspose::Tasks::TimeScaledExceptions>& scaledWorkingExceptions);
1116  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimephasedDataCollection> GetTimephasedData(bool addBaselineTDs);
1117  ASPOSE_TASKS_SHARED_API void ResetOnlyTimephasedData();
1118  ASPOSE_TASKS_SHARED_API void SetTimeScaledExceptionsChanged();
1119  ASPOSE_TASKS_SHARED_API void ResetTimephasedData();
1120  ASPOSE_TASKS_SHARED_API void SetWorkContourType(WorkContourType type);
1121  ASPOSE_TASKS_SHARED_API void SetTimephasedData(const System::SharedPtr<ResourceAssignmentTimephasedDataCollection>& list);
1122  /// <summary>
1123  /// Gets or sets an actual SplitParts without any side effect.
1124  /// </summary>
1125  /// <remarks>
1126  /// Use this method in case you do not want to save calculated SplitParts (as <see cref="SplitParts"></see> property does), so they can be calculated further.
1127  /// </remarks>
1128  ASPOSE_TASKS_SHARED_API System::SharedPtr<SplitPartCollection> GetCalculatedSplitParts();
1129  ASPOSE_TASKS_SHARED_API System::DateTime GetStartAddDelay(System::DateTime startDate);
1130  ASPOSE_TASKS_SHARED_API void SetStart();
1131  ASPOSE_TASKS_SHARED_API void SetFinish();
1132  ASPOSE_TASKS_SHARED_API System::String GetUnitsString();
1133  ASPOSE_TASKS_SHARED_API void SetCalendar(const System::SharedPtr<Project>& project);
1134  ASPOSE_TASKS_SHARED_API void ResetCalendar();
1135  ASPOSE_TASKS_SHARED_API void MoveSplits(System::DateTime date);
1136  ASPOSE_TASKS_SHARED_API void CleanActualProperties();
1137  ASPOSE_TASKS_SHARED_API void SetBaseline(BaselineType baselineType);
1138  ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Aspose::Tasks::TimephasedData>>> GetSortedTimephasedData();
1139  ASPOSE_TASKS_SHARED_API Util::DateTimeInterval GetStartFinishOfTimephasedData();
1140  ASPOSE_TASKS_SHARED_API void AddAssignments();
1141  ASPOSE_TASKS_SHARED_API void CalculateTimephasedData(const System::SharedPtr<TimephasedDataCollection>& list, bool addBaselineTimephased);
1142  ASPOSE_TASKS_SHARED_API void RecalculateTimephasedData();
1143  ASPOSE_TASKS_SHARED_API Duration GetContouredRemainingWork();
1144  ASPOSE_TASKS_SHARED_API bool GetCalculatedValue(AsnKey key, System::SharedPtr<System::Object>& res) const;
1145  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimeScaledParentWorkUnit> InferScaledWorkComplete();
1146  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimeScaledParentWorkUnit> InferScaledWorkActual();
1147  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimeScaledParentWorkUnit> InferScaledWorkRemaining();
1148  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimeScaledParentWorkUnit> InferScaledWork(TimephasedDataType timephasedDataType);
1149  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimeScaledParentWorkUnit> InferScaledWork(Util::ConditionDelegate<System::SharedPtr<Aspose::Tasks::TimephasedData>> timephasedDataCondition);
1150  ASPOSE_TASKS_SHARED_API void SetSplitsFinish(System::DateTime finish);
1151  ASPOSE_TASKS_SHARED_API Duration GetWork();
1152  ASPOSE_TASKS_SHARED_API double GetMeanLoad();
1153  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimeScaledWorkUnit> GetMeanUnit();
1154  ASPOSE_TASKS_SHARED_API void AddImplicitWorkingTimeException(System::DateTime date, const System::SharedPtr<WorkingTimeCollection>& workingTimes);
1155  ASPOSE_TASKS_SHARED_API void AddImplicitWorkingTimeExceptionInterval(System::DateTime start, System::DateTime finish);
1156  ASPOSE_TASKS_SHARED_API void RemoveImplicitWorkingTimeException(System::DateTime date);
1157  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimeScaledParentWorkUnit> GetScaledActualWork();
1158  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimeScaledParentWorkUnit> GetScaledRemainingWork();
1159  ASPOSE_TASKS_SHARED_API System::SharedPtr<Calculations::IWorkContourIterator> GetActualWorkIterator();
1160  ASPOSE_TASKS_SHARED_API System::SharedPtr<Calculations::IWorkContourIterator> GetRemainingWorkIterator();
1161  ASPOSE_TASKS_SHARED_API System::SharedPtr<Calculations::IWorkContourIterator> GetWorkIterator();
1162  ASPOSE_TASKS_SHARED_API bool SetCalculatedValue(AsnKey keyType, const System::SharedPtr<System::Object>& v);
1163 
1164  virtual ASPOSE_TASKS_SHARED_API ~ResourceAssignment();
1165 
1166  #ifdef ASPOSE_GET_SHARED_MEMBERS
1167  ASPOSE_TASKS_SHARED_API void GetSharedMembers(System::Object::shared_members_type& result) const override;
1168  #endif
1169 
1170 
1171 private:
1172 
1173  System::SharedPtr<PropertyContainer<AsnKey>> container;
1174  System::SharedPtr<TimephasedDataCollection> timephasedData;
1175  System::SharedPtr<Calendar> assignmentCalendar;
1176  System::SharedPtr<SplitPartCollection> splitParts;
1177  System::SharedPtr<Rate> currentRate;
1178  System::SharedPtr<AssignmentBaselineCollection> baselines;
1179  System::SharedPtr<ExtendedAttributeCollection> extendedAttributes;
1180  System::SharedPtr<TimeScaledParentWorkUnit> scaledWorkComplete;
1181  System::SharedPtr<TimeScaledParentWorkUnit> scaledWorkIncomplete;
1182  System::SharedPtr<TimeScaledParentWorkUnit> scaledWorkOverallocated;
1183  System::WeakPtr<Aspose::Tasks::Task> pr_Task;
1184  System::WeakPtr<Aspose::Tasks::Resource> pr_Resource;
1185  System::Nullable<System::Guid> pr_Guid;
1186  System::WeakPtr<Project> pr_ParentProject;
1187 
1188  ASPOSE_TASKS_SHARED_API bool get_HasChildren() override;
1189  ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<IExtendedAttributeParent>>> get_Items() override;
1190 
1191  bool pr_IsShared;
1192  System::Guid pr_TempGuid;
1193  System::ArrayPtr<uint8_t> pr_WorkCompleteRawTD;
1194 
1195  ASPOSE_TASKS_SHARED_API void set_WorkCompleteRawTD(const System::ArrayPtr<uint8_t>& value);
1196 
1197  System::ArrayPtr<uint8_t> pr_WorkIncompleteRawTD;
1198 
1199  ASPOSE_TASKS_SHARED_API void set_WorkIncompleteRawTD(const System::ArrayPtr<uint8_t>& value);
1200 
1201  System::ArrayPtr<uint8_t> pr_WorkOverallocatedRawTD;
1202 
1203  ASPOSE_TASKS_SHARED_API void set_WorkOverallocatedRawTD(const System::ArrayPtr<uint8_t>& value);
1204 
1205  System::ArrayPtr<uint8_t> pr_WorkingExceptionsRaw;
1206 
1207  ASPOSE_TASKS_SHARED_API void set_WorkingExceptionsRaw(const System::ArrayPtr<uint8_t>& value);
1208  ASPOSE_TASKS_SHARED_API void set_ScaledWorkOverallocated(const System::SharedPtr<TimeScaledParentWorkUnit>& value);
1209 
1210  System::SharedPtr<Aspose::Tasks::TimeScaledExceptions> pr_TimeScaledExceptions;
1211  double pr_PlannedValueNoCostUse;
1212  bool pr_IsWorkContourChanged;
1213 
1214  System::String get_DebuggerDisplay();
1215 
1216  System::SharedPtr<Calendar> GetCalendar() override;
1217  static System::SharedPtr<Calendar> GetIntersectedCalendar(const System::SharedPtr<Calendar>& taskCalendar, const System::SharedPtr<Calendar>& resourceCalendar);
1218  static bool IsGeneratedTimephasedType(TimephasedDataType timephasedType);
1219  bool HasMppTimephased();
1220  System::SharedPtr<TimeScaledParentWorkUnit> InferScaledWork(const System::SharedPtr<System::Collections::Generic::IList<System::SharedPtr<Aspose::Tasks::TimephasedData>>>& tds);
1221  System::SharedPtr<Calendar> TryToInheritCalendarFromTask();
1222  System::SharedPtr<Calendar> TryToInheritCalendarFromResource(const System::SharedPtr<Project>& project);
1223  void MakeTimephasedDataFromMpp(const System::SharedPtr<TimephasedDataCollection>& td);
1224  void MakeTimephasedDataFromXml(const System::SharedPtr<TimephasedDataCollection>& td);
1225  void AddBaselineTimephasedData(const System::SharedPtr<TimephasedDataCollection>& td);
1226  void UpdateWorkTD(const System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<Aspose::Tasks::TimephasedData>>>& complete, const System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<Aspose::Tasks::TimephasedData>>>& overtimeComplete);
1227  System::SharedPtr<SplitPartCollection> CalculateSplitParts();
1228  System::SharedPtr<System::Collections::Generic::IList<System::SharedPtr<Aspose::Tasks::TimephasedData>>> GenerateTimephased(System::DateTime start, System::DateTime end, TimephasedDataType timephasedType);
1229  Duration GetRemainingWork();
1230  Duration GetActualWork();
1231  System::SharedPtr<TimephasedDataCollection> GenerateTimephasedWithoutTimeScaledData(System::DateTime startDate, System::DateTime end, TimephasedDataType timephasedType);
1232  void GenerateTimephasedFromTimeScaledData(System::DateTime start, System::DateTime end, TimephasedDataType timephasedType, const System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Aspose::Tasks::TimephasedData>>>& outputList);
1233  void GetTimephasedBaselineData(System::DateTime startDate, System::DateTime end, TimephasedDataType timephasedType, const System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Aspose::Tasks::TimephasedData>>>& outputList);
1234  static System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Aspose::Tasks::TimephasedData>>> FilterTimephasedData(const System::SharedPtr<TimephasedDataCollection>& timephasedData, System::DateTime startDate, System::DateTime endDate, TimephasedDataType type);
1235  void SetBaselineValues(const System::SharedPtr<AssignmentBaseline>& bl);
1236  void SetBaselineTimephased(const System::SharedPtr<AssignmentBaseline>& bl);
1237  void TimephasedDataChanged(const System::SharedPtr<System::Object>& sender, const System::SharedPtr<System::EventArgs>& e);
1238  System::SharedPtr<Calendar> WrapCalendarIfNecessary(const System::SharedPtr<Calendar>& calendar);
1239  bool TryGetTimephasedWorkForBaseline(System::DateTime start, System::DateTime end, TimephasedDataType timephasedDataType, System::TimeSpan& work);
1240 
1241 };
1242 
1243 } // namespace Tasks
1244 } // namespace Aspose
1245 
1246 
Represents a collection of TaskBaseline objects.
Definition: TaskBaselineCollection.h:100
Represents a task in a project.
Definition: Task.h:387
Definition: Asn.h:12
Represents a property key of a class of the specified type. An instance of this class is used when ge...
Definition: Asn.h:19
Represents duration in a project.
Definition: Duration.h:161
Represents a project.
Definition: Project.h:550
K get_KeyType() const
Gets the key of the property.
Definition: Key.h:119
T Get(const Key< T, AsnKey > &key) const
Returns the value to which the property is mapped in this container.
Definition: ResourceAssignment.h:871
Denotes an entity which can contain Timephased Data.
Definition: IEntityWithTd.h:32
Represents a resource assignment in a project.
Definition: ResourceAssignment.h:225
void Set(const Key< T, AsnKey > &key, const T &val)
Maps the specified property to the specified value in this container.
Definition: ResourceAssignment.h:898
Represents a collection of ResourceAssignment objects.
Definition: ResourceAssignmentCollection.h:101
Represents Baseline of a resource assignment.
Definition: AssignmentBaseline.h:83