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