Aspose.Tasks for C++
Resource.h
1 #pragma once
2 //-----------------------------------------------------------------------
3 // <copyright file="Resource.cs" company="Aspose Pty Ltd">
4 // Copyright (c) 2002-2025 Aspose Pty Ltd. All Rights Reserved.
5 // </copyright>
6 //-----------------------------------------------------------------------
7 
8 #include <system/iequatable.h>
9 #include <system/date_time.h>
10 
11 #include "aspose.tasks.cpp/PropertyContainer.h"
12 #include "aspose.tasks.cpp/IEntityWithNotes.h"
13 #include "aspose.tasks.cpp/IEntityWithHyperlink.h"
14 #include "aspose.tasks.cpp/IContainer.h"
15 #include "aspose.tasks.cpp/Key.h"
16 #include "aspose.tasks.cpp/IExtendedAttributeParent.h"
17 #include "aspose.tasks.cpp/Enums/RscKey.h"
18 #include "aspose.tasks.cpp/aspose_tasks_api_defs.h"
19 
20 namespace Aspose
21 {
22 namespace Tasks
23 {
24 class AutoRecalculationState;
25 class AvailabilityPeriodCollection;
26 class Baseline;
27 class BaselineCollection;
28 enum class BaselineType;
29 enum class BookingType;
30 namespace Calculations
31 {
32 class ActualTimephasedDataUpdater;
33 class ResourceAssignmentCostCalculator;
34 class ResourceCalculator;
35 class ResourceCostCalculator;
36 class ResourceOverAllocationCalculator;
37 class ResourceWorkCalculator;
38 } // namespace Calculations
39 class Calendar;
40 namespace Connectivity
41 {
42 template <typename> class MpdField;
43 class MpdOutlineCodeField;
44 class MpdReader;
45 class MpdResourceBaselineMapper;
46 class MpdResourceMapper;
47 class MspResourceMapper;
48 class PmResourceMapper;
49 class PmResourceRateMapper;
50 } // namespace Connectivity
51 enum class CostAccrualType;
52 class Duration;
53 class EvaluationModeDatesResetter;
54 class EVCalculator;
55 class ExtendedAttributeCollection;
56 namespace Filters
57 {
58 class ResourceGuidFilter;
59 } // namespace Filters
60 namespace IO
61 {
62 namespace Html
63 {
64 class HtmlResourceBaseLineTableReader;
65 class HtmlResourceExtAttributesTableReader;
66 class HtmlResourceTableReader;
67 } // namespace Html
68 namespace Mpx
69 {
70 class MpxReader;
71 class MpxUtils;
72 } // namespace Mpx
73 namespace MSProject
74 {
75 class MPP12ResourceReader;
76 class MPP12ResourceWriter;
77 class MPP14ResourceWriter;
78 class MPP9ResourceReader;
79 class MPP9ResourceWriter;
80 class MPPAvailabilityReader;
81 class MppAvailabilityWriter;
82 class MPPRateTableReader;
83 class MPPReader;
84 class MPPResourceReader;
85 class MPPResourceWriter;
86 } // namespace MSProject
87 namespace PrimaveraXml
88 {
89 class PrimaveraCalendarNodeReader;
90 class PrimaveraResourceNodeReader;
91 class PrimaveraResourceRateNodeReader;
92 } // namespace PrimaveraXml
93 namespace Pwa
94 {
95 namespace InternalApi
96 {
97 namespace Mapping
98 {
99 class AssignmentToRawValuesMapper;
100 class CalendarToRawValuesMapper;
101 class ExtendedAttributeDefinitionToRawValuesMapper;
102 class ProjectResourcesMapper;
103 class ResourceToRawValuesMapper;
104 } // namespace Mapping
105 } // namespace InternalApi
106 } // namespace Pwa
107 namespace Xer
108 {
109 class XerResourceRateReader;
110 class XerResourceReader;
111 class XerRoleWithRates;
112 class XerUtils;
113 } // namespace Xer
114 namespace Xml
115 {
116 class ResourceNodeReader;
117 class ResourceNodeWriter;
118 class XmlReader;
119 class XmlWriter;
120 } // namespace Xml
121 } // namespace IO
122 namespace Leveling
123 {
124 class LevelingAlgorithm;
125 } // namespace Leveling
126 class NullableBool;
127 class OutlineCodeCollection;
128 class ProjDateAdd;
129 class ProjDateConv;
130 class ProjDateDiff;
131 class ProjDateSub;
132 class ProjDurConv;
133 class ProjDurValue;
134 class Project;
135 class ProjectIntegrityValidator;
136 class ProjectState;
137 namespace Properties
138 {
139 class ResourcePropertyCollection;
140 } // namespace Properties
141 class RateCollection;
142 enum class RateFormatType;
143 class ResourceAssignment;
144 class ResourceAssignmentCollection;
145 class ResourceCollection;
146 class ResourceFactory;
147 enum class ResourceType;
148 namespace Saving
149 {
150 class CsvOptions;
151 class HtmlResourceBaseLineTable;
152 class HtmlResourceExtendedAttributesTable;
153 class MpxSavingUtils;
154 class TemplateWriter;
155 class XerResourceRatesTable;
156 } // namespace Saving
157 class TimephasedData;
158 class TimephasedDataCollection;
159 enum class TimephasedDataType : int8_t;
160 class TimephasedWorkCostSelector;
161 namespace Util
162 {
163 class CalculatedExtendedAttributeUtils;
164 class ExtendedAttributeChecker;
165 namespace Fields
166 {
167 class FieldHelperInternal;
168 class FieldToValue;
169 class RscFieldToValue;
170 } // namespace Fields
171 } // namespace Util
172 namespace Visualization
173 {
174 class ApsReportBuilder;
175 class ApsReportCostOverrunsBuilder;
176 class ApsReportOverallocatedRscBuilder;
177 class ApsReportResourceCostOverviewBuilder;
178 class ApsReportRscOverviewBuilder;
179 class ApsResourceUsageBuilder;
180 class ApsResourceUsagePage;
181 class ResourceToColumnText;
182 } // namespace Visualization
183 enum class WorkGroupType;
184 } // namespace Tasks
185 } // namespace Aspose
186 namespace System
187 {
188 namespace Collections
189 {
190 namespace Generic
191 {
192 template <typename> class IEnumerable;
193 template <typename> class IList;
194 } // namespace Generic
195 } // namespace Collections
196 class Decimal;
197 class Guid;
198 } // namespace System
199 
200 namespace Aspose {
201 
202 namespace Tasks {
203 
204 /// <summary>
205 /// Represents a resource in a project.
206 /// </summary>
207 class ASPOSE_TASKS_SHARED_CLASS Resource : public Aspose::Tasks::IContainer<Aspose::Tasks::RscKey>, public System::IEquatable<System::SharedPtr<Aspose::Tasks::Resource>>, public Aspose::Tasks::IExtendedAttributeParent, public Aspose::Tasks::IEntityWithNotes, public Aspose::Tasks::IEntityWithHyperlink
208 {
209  typedef Resource ThisType;
210  typedef Aspose::Tasks::IContainer<Aspose::Tasks::RscKey> BaseType;
211  typedef System::IEquatable<System::SharedPtr<Aspose::Tasks::Resource>> BaseType1;
212  typedef Aspose::Tasks::IExtendedAttributeParent BaseType2;
213  typedef Aspose::Tasks::IEntityWithNotes BaseType3;
214  typedef Aspose::Tasks::IEntityWithHyperlink BaseType4;
215 
216  typedef ::System::BaseTypesInfo<BaseType, BaseType1, BaseType2, BaseType3, BaseType4> ThisTypeBaseTypesInfo;
217  ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
218 
219  friend class Aspose::Tasks::Calculations::ActualTimephasedDataUpdater;
220  friend class Aspose::Tasks::Calculations::ResourceOverAllocationCalculator;
221  friend class Aspose::Tasks::Calculations::ResourceAssignmentCostCalculator;
222  friend class Aspose::Tasks::Calculations::ResourceCalculator;
223  friend class Aspose::Tasks::Calculations::ResourceCostCalculator;
224  friend class Aspose::Tasks::Calculations::ResourceWorkCalculator;
225  friend class Aspose::Tasks::IO::MSProject::MppAvailabilityWriter;
226  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraCalendarNodeReader;
227  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraResourceNodeReader;
228  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraResourceRateNodeReader;
229  friend class Aspose::Tasks::Leveling::LevelingAlgorithm;
230  friend class Aspose::Tasks::Project;
232  friend class Aspose::Tasks::Filters::ResourceGuidFilter;
233  friend class Aspose::Tasks::ResourceFactory;
234  friend class Aspose::Tasks::ResourceFactory;
235  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::AssignmentToRawValuesMapper;
236  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::CalendarToRawValuesMapper;
237  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ExtendedAttributeDefinitionToRawValuesMapper;
238  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ResourceToRawValuesMapper;
239  friend class Aspose::Tasks::EVCalculator;
240  friend class Aspose::Tasks::ProjDateAdd;
241  friend class Aspose::Tasks::ProjDateConv;
242  friend class Aspose::Tasks::ProjDateDiff;
243  friend class Aspose::Tasks::ProjDateSub;
244  friend class Aspose::Tasks::ProjDurConv;
245  friend class Aspose::Tasks::ProjDurValue;
246  template<typename FT0> friend class Aspose::Tasks::Connectivity::MpdField;
247  friend class Aspose::Tasks::Connectivity::MpdOutlineCodeField;
248  friend class Aspose::Tasks::Connectivity::MpdReader;
249  friend class Aspose::Tasks::Connectivity::MpdResourceBaselineMapper;
250  friend class Aspose::Tasks::Connectivity::MpdResourceMapper;
251  friend class Aspose::Tasks::Connectivity::MspResourceMapper;
252  friend class Aspose::Tasks::Connectivity::PmResourceMapper;
253  friend class Aspose::Tasks::Connectivity::PmResourceRateMapper;
254  friend class Aspose::Tasks::IO::Html::HtmlResourceBaseLineTableReader;
255  friend class Aspose::Tasks::IO::Html::HtmlResourceExtAttributesTableReader;
256  friend class Aspose::Tasks::IO::Html::HtmlResourceTableReader;
257  friend class Aspose::Tasks::Visualization::ApsResourceUsagePage;
258  friend class Aspose::Tasks::IO::MSProject::MPPReader;
259  friend class Aspose::Tasks::IO::MSProject::MPP12ResourceReader;
260  friend class Aspose::Tasks::IO::MSProject::MPPResourceReader;
261  friend class Aspose::Tasks::IO::MSProject::MPP12ResourceWriter;
262  friend class Aspose::Tasks::IO::MSProject::MPP9ResourceReader;
263  friend class Aspose::Tasks::IO::MSProject::MPP9ResourceWriter;
264  friend class Aspose::Tasks::IO::MSProject::MPP14ResourceWriter;
265  friend class Aspose::Tasks::IO::MSProject::MPPAvailabilityReader;
266  friend class Aspose::Tasks::IO::MSProject::MPPRateTableReader;
267  friend class Aspose::Tasks::IO::MSProject::MPPResourceWriter;
268  friend class Aspose::Tasks::IO::Mpx::MpxReader;
269  friend class Aspose::Tasks::IO::Mpx::MpxUtils;
270  friend class Aspose::Tasks::IO::Xer::XerResourceRateReader;
271  friend class Aspose::Tasks::IO::Xer::XerResourceReader;
272  friend class Aspose::Tasks::IO::Xer::XerRoleWithRates;
273  friend class Aspose::Tasks::IO::Xer::XerUtils;
274  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectResourcesMapper;
275  friend class Aspose::Tasks::IO::Xml::ResourceNodeReader;
276  friend class Aspose::Tasks::IO::Xml::ResourceNodeWriter;
277  friend class Aspose::Tasks::IO::Xml::XmlReader;
278  friend class Aspose::Tasks::IO::Xml::XmlWriter;
279  friend class Aspose::Tasks::ProjectIntegrityValidator;
280  friend class Aspose::Tasks::AutoRecalculationState;
281  friend class Aspose::Tasks::ProjectState;
282  friend class Aspose::Tasks::EvaluationModeDatesResetter;
285  friend class Aspose::Tasks::Visualization::ApsReportBuilder;
287  friend class Aspose::Tasks::Saving::HtmlResourceBaseLineTable;
288  friend class Aspose::Tasks::Saving::HtmlResourceExtendedAttributesTable;
289  friend class Aspose::Tasks::Saving::MpxSavingUtils;
290  friend class Aspose::Tasks::Saving::XerResourceRatesTable;
291  friend class Aspose::Tasks::Saving::TemplateWriter;
292  friend class Aspose::Tasks::TimephasedWorkCostSelector;
293  friend class Aspose::Tasks::Util::CalculatedExtendedAttributeUtils;
294  friend class Aspose::Tasks::Util::ExtendedAttributeChecker;
295  friend class Aspose::Tasks::Util::Fields::FieldHelperInternal;
296  friend class Aspose::Tasks::Util::Fields::FieldToValue;
297  friend class Aspose::Tasks::Util::Fields::RscFieldToValue;
298  friend class Aspose::Tasks::Visualization::ApsResourceUsageBuilder;
299  friend class Aspose::Tasks::Visualization::ApsReportCostOverrunsBuilder;
300  friend class Aspose::Tasks::Visualization::ApsReportOverallocatedRscBuilder;
301  friend class Aspose::Tasks::Visualization::ApsReportResourceCostOverviewBuilder;
302  friend class Aspose::Tasks::Visualization::ApsReportRscOverviewBuilder;
303  friend class Aspose::Tasks::Visualization::ResourceToColumnText;
304 
305 public:
306 
307  /// <summary>
308  /// Gets parent project for this container.
309  /// </summary>
310  ASPOSE_TASKS_SHARED_API const System::SharedPtr<Project>& get_ParentProject() const override;
311  /// <summary>
312  /// Gets the values of an extended attribute.
313  /// </summary>
314  /// <remarks>
315  /// Two pieces of data are necessary - a pointer back to the extended attribute table
316  /// which is specified either by the unique ID or the Field ID, and the value
317  /// which is specified either with the value, or a pointer back to the value list.
318  /// </remarks>
319  ASPOSE_TASKS_SHARED_API System::SharedPtr<ExtendedAttributeCollection> get_ExtendedAttributes() override;
320  /// <summary>
321  /// Gets a BaselineCollection instance for this object.
322  /// The baseline values for a resource.
323  /// </summary>
324  ASPOSE_TASKS_SHARED_API const System::SharedPtr<BaselineCollection>& get_Baselines() const;
325  /// <summary>
326  /// Gets an OutlineCodeCollection object.
327  /// The value of an outline code.
328  /// </summary>
329  /// <remarks>
330  /// Two pieces of data are necessary - a pointer to the outline code table that
331  /// is specified by the FieldID, and the value that is specified either by
332  /// the ValueID or ValueGUID pointer to the value list.
333  /// </remarks>
334  ASPOSE_TASKS_SHARED_API System::SharedPtr<OutlineCodeCollection> get_OutlineCode() const;
335  /// <summary>
336  /// Gets a the instance of the <see cref="AvailabilityPeriodCollection"></see> class.
337  /// The collection of periods during which a resource is available.
338  /// </summary>
339  ASPOSE_TASKS_SHARED_API const System::SharedPtr<AvailabilityPeriodCollection>& get_AvailabilityPeriods() const;
340  /// <summary>
341  /// Gets a the instance of the <see cref="RateCollection"></see> class for this object.
342  /// The collection of periods and rates associated with each one.
343  /// </summary>
344  ASPOSE_TASKS_SHARED_API const System::SharedPtr<RateCollection>& get_Rates() const;
345  /// <summary>
346  /// Gets a collection of resource assignments for this object.
347  /// </summary>
348  ASPOSE_TASKS_SHARED_API const System::SharedPtr<ResourceAssignmentCollection>& get_Assignments() const;
349  /// <summary>
350  /// Gets an instance of <see cref="TimephasedDataCollection"></see> class for this object.
351  /// </summary>
352  /// <remarks>Reading supported for XML format only.</remarks>
353  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimephasedDataCollection> get_TimephasedData();
354  /// <summary>
355  /// Sets an instance of <see cref="TimephasedDataCollection"></see> class for this object.
356  /// </summary>
357  /// <remarks>Reading supported for XML format only.</remarks>
358  ASPOSE_TASKS_SHARED_API void set_TimephasedData(const System::SharedPtr<TimephasedDataCollection>& value);
359  /// <summary>
360  /// Gets the flag indicating whether resource is a root resource.
361  /// Root resource is a special resource which is intended to support internals of
362  /// MS Project's formats and is not intended to be used directly from the user's code.
363  /// </summary>
364  virtual ASPOSE_TASKS_SHARED_API bool get_IsRoot();
365  /// <summary>
366  /// Gets a value of AccrueAt.
367  /// </summary>
368  ASPOSE_TASKS_SHARED_API CostAccrualType get_AccrueAt();
369  /// <summary>
370  /// Sets a value of AccrueAt.
371  /// </summary>
372  ASPOSE_TASKS_SHARED_API void set_AccrueAt(CostAccrualType value);
373  /// <summary>
374  /// Gets a value of ActiveDirectoryGuid.
375  /// </summary>
376  ASPOSE_TASKS_SHARED_API System::String get_ActiveDirectoryGuid();
377  /// <summary>
378  /// Sets a value of ActiveDirectoryGuid.
379  /// </summary>
380  ASPOSE_TASKS_SHARED_API void set_ActiveDirectoryGuid(const System::String& value);
381  /// <summary>
382  /// Gets a value of ActualCost.
383  /// </summary>
384  ASPOSE_TASKS_SHARED_API System::Decimal get_ActualCost();
385  /// <summary>
386  /// Sets a value of ActualCost.
387  /// </summary>
388  ASPOSE_TASKS_SHARED_API void set_ActualCost(System::Decimal value);
389  /// <summary>
390  /// Gets a value of ActualOvertimeCost.
391  /// </summary>
392  ASPOSE_TASKS_SHARED_API System::Decimal get_ActualOvertimeCost();
393  /// <summary>
394  /// Sets a value of ActualOvertimeCost.
395  /// </summary>
396  ASPOSE_TASKS_SHARED_API void set_ActualOvertimeCost(System::Decimal value);
397  /// <summary>
398  /// Gets a value of ActualOvertimeWork.
399  /// </summary>
400  ASPOSE_TASKS_SHARED_API Duration get_ActualOvertimeWork();
401  /// <summary>
402  /// Sets a value of ActualOvertimeWork.
403  /// </summary>
404  ASPOSE_TASKS_SHARED_API void set_ActualOvertimeWork(Duration value);
405  /// <summary>
406  /// Gets a value of ActualOvertimeWorkProtected.
407  /// </summary>
408  ASPOSE_TASKS_SHARED_API Duration get_ActualOvertimeWorkProtected();
409  /// <summary>
410  /// Sets a value of ActualOvertimeWorkProtected.
411  /// </summary>
412  ASPOSE_TASKS_SHARED_API void set_ActualOvertimeWorkProtected(Duration value);
413  /// <summary>
414  /// Gets a value of ActualWork.
415  /// </summary>
416  ASPOSE_TASKS_SHARED_API Duration get_ActualWork();
417  /// <summary>
418  /// Sets a value of ActualWork.
419  /// </summary>
420  ASPOSE_TASKS_SHARED_API void set_ActualWork(Duration value);
421  /// <summary>
422  /// Gets a value of ActualWorkProtected.
423  /// </summary>
424  ASPOSE_TASKS_SHARED_API Duration get_ActualWorkProtected();
425  /// <summary>
426  /// Sets a value of ActualWorkProtected.
427  /// </summary>
428  ASPOSE_TASKS_SHARED_API void set_ActualWorkProtected(Duration value);
429  /// <summary>
430  /// Gets a value of ACWP.
431  /// </summary>
432  ASPOSE_TASKS_SHARED_API double get_ACWP();
433  /// <summary>
434  /// Sets a value of ACWP.
435  /// </summary>
436  ASPOSE_TASKS_SHARED_API void set_ACWP(double value);
437  /// <summary>
438  /// Gets a value of AssignmentOwner.
439  /// </summary>
440  ASPOSE_TASKS_SHARED_API System::String get_AssignmentOwner();
441  /// <summary>
442  /// Sets a value of AssignmentOwner.
443  /// </summary>
444  ASPOSE_TASKS_SHARED_API void set_AssignmentOwner(const System::String& value);
445  /// <summary>
446  /// Gets a value of AssignmentOwnerGuid.
447  /// </summary>
448  ASPOSE_TASKS_SHARED_API System::String get_AssignmentOwnerGuid();
449  /// <summary>
450  /// Sets a value of AssignmentOwnerGuid.
451  /// </summary>
452  ASPOSE_TASKS_SHARED_API void set_AssignmentOwnerGuid(const System::String& value);
453  /// <summary>
454  /// Gets a value of AvailableFrom.
455  /// </summary>
456  ASPOSE_TASKS_SHARED_API System::DateTime get_AvailableFrom();
457  /// <summary>
458  /// Sets a value of AvailableFrom.
459  /// </summary>
460  ASPOSE_TASKS_SHARED_API void set_AvailableFrom(System::DateTime value);
461  /// <summary>
462  /// Gets a value of AvailableTo.
463  /// </summary>
464  ASPOSE_TASKS_SHARED_API System::DateTime get_AvailableTo();
465  /// <summary>
466  /// Sets a value of AvailableTo.
467  /// </summary>
468  ASPOSE_TASKS_SHARED_API void set_AvailableTo(System::DateTime value);
469  /// <summary>
470  /// Gets a value of BCWP.
471  /// </summary>
472  ASPOSE_TASKS_SHARED_API double get_BCWP();
473  /// <summary>
474  /// Sets a value of BCWP.
475  /// </summary>
476  ASPOSE_TASKS_SHARED_API void set_BCWP(double value);
477  /// <summary>
478  /// Gets a value of BCWS.
479  /// </summary>
480  ASPOSE_TASKS_SHARED_API double get_BCWS();
481  /// <summary>
482  /// Sets a value of BCWS.
483  /// </summary>
484  ASPOSE_TASKS_SHARED_API void set_BCWS(double value);
485  /// <summary>
486  /// Gets a value of BookingType.
487  /// </summary>
488  ASPOSE_TASKS_SHARED_API Aspose::Tasks::BookingType get_BookingType();
489  /// <summary>
490  /// Sets a value of BookingType.
491  /// </summary>
492  ASPOSE_TASKS_SHARED_API void set_BookingType(Aspose::Tasks::BookingType value);
493  /// <summary>
494  /// Gets a value of BudgetCost.
495  /// </summary>
496  ASPOSE_TASKS_SHARED_API System::Decimal get_BudgetCost();
497  /// <summary>
498  /// Sets a value of BudgetCost.
499  /// </summary>
500  ASPOSE_TASKS_SHARED_API void set_BudgetCost(System::Decimal value);
501  /// <summary>
502  /// Gets a value of BudgetWork.
503  /// </summary>
504  ASPOSE_TASKS_SHARED_API Duration get_BudgetWork();
505  /// <summary>
506  /// Sets a value of BudgetWork.
507  /// </summary>
508  ASPOSE_TASKS_SHARED_API void set_BudgetWork(Duration value);
509  /// <summary>
510  /// Gets a value of Calendar.
511  /// </summary>
512  ASPOSE_TASKS_SHARED_API System::SharedPtr<Aspose::Tasks::Calendar> get_Calendar();
513  /// <summary>
514  /// Sets a value of Calendar.
515  /// </summary>
516  ASPOSE_TASKS_SHARED_API void set_Calendar(const System::SharedPtr<Aspose::Tasks::Calendar>& value);
517  /// <summary>
518  /// Gets a value indicating whether CanLevel is set or not.
519  /// </summary>
520  ASPOSE_TASKS_SHARED_API NullableBool get_CanLevel();
521  /// <summary>
522  /// Sets a value indicating whether CanLevel is set or not.
523  /// </summary>
524  ASPOSE_TASKS_SHARED_API void set_CanLevel(NullableBool value);
525  /// <summary>
526  /// Gets a value of Code.
527  /// </summary>
528  ASPOSE_TASKS_SHARED_API System::String get_Code();
529  /// <summary>
530  /// Sets a value of Code.
531  /// </summary>
532  ASPOSE_TASKS_SHARED_API void set_Code(const System::String& value);
533  /// <summary>
534  /// Gets a value of Cost.
535  /// </summary>
536  ASPOSE_TASKS_SHARED_API System::Decimal get_Cost();
537  /// <summary>
538  /// Sets a value of Cost.
539  /// </summary>
540  ASPOSE_TASKS_SHARED_API void set_Cost(System::Decimal value);
541  /// <summary>
542  /// Gets a value of CostCenter.
543  /// </summary>
544  ASPOSE_TASKS_SHARED_API System::String get_CostCenter();
545  /// <summary>
546  /// Sets a value of CostCenter.
547  /// </summary>
548  ASPOSE_TASKS_SHARED_API void set_CostCenter(const System::String& value);
549  /// <summary>
550  /// Gets a value of CostPerUse.
551  /// </summary>
552  ASPOSE_TASKS_SHARED_API System::Decimal get_CostPerUse();
553  /// <summary>
554  /// Sets a value of CostPerUse.
555  /// </summary>
556  ASPOSE_TASKS_SHARED_API void set_CostPerUse(System::Decimal value);
557  /// <summary>
558  /// Gets a value of CostVariance.
559  /// </summary>
560  ASPOSE_TASKS_SHARED_API double get_CostVariance();
561  /// <summary>
562  /// Sets a value of CostVariance.
563  /// </summary>
564  ASPOSE_TASKS_SHARED_API void set_CostVariance(double value);
565  /// <summary>
566  /// Gets a value of Created.
567  /// </summary>
568  ASPOSE_TASKS_SHARED_API System::DateTime get_Created();
569  /// <summary>
570  /// Sets a value of Created.
571  /// </summary>
572  ASPOSE_TASKS_SHARED_API void set_Created(System::DateTime value);
573  /// <summary>
574  /// Gets a value of CV.
575  /// </summary>
576  ASPOSE_TASKS_SHARED_API double get_CV();
577  /// <summary>
578  /// Sets a value of CV.
579  /// </summary>
580  ASPOSE_TASKS_SHARED_API void set_CV(double value);
581  /// <summary>
582  /// Gets a value of EMailAddress.
583  /// </summary>
584  ASPOSE_TASKS_SHARED_API System::String get_EMailAddress();
585  /// <summary>
586  /// Sets a value of EMailAddress.
587  /// </summary>
588  ASPOSE_TASKS_SHARED_API void set_EMailAddress(const System::String& value);
589  /// <summary>
590  /// Gets a value of Finish.
591  /// </summary>
592  ASPOSE_TASKS_SHARED_API System::DateTime get_Finish();
593  /// <summary>
594  /// Sets a value of Finish.
595  /// </summary>
596  ASPOSE_TASKS_SHARED_API void set_Finish(System::DateTime value);
597  /// <summary>
598  /// Gets a value of Group.
599  /// </summary>
600  ASPOSE_TASKS_SHARED_API System::String get_Group();
601  /// <summary>
602  /// Sets a value of Group.
603  /// </summary>
604  ASPOSE_TASKS_SHARED_API void set_Group(const System::String& value);
605  /// <summary>
606  /// Gets a value of Guid.
607  /// </summary>
608  ASPOSE_TASKS_SHARED_API System::String get_Guid();
609  /// <summary>
610  /// Sets a value of Guid.
611  /// </summary>
612  ASPOSE_TASKS_SHARED_API void set_Guid(const System::String& value);
613  /// <summary>
614  /// Gets the title or explanatory text of a hyperlink associated with a resource.
615  /// </summary>
616  ASPOSE_TASKS_SHARED_API System::String get_Hyperlink() override;
617  /// <summary>
618  /// Sets the title or explanatory text of a hyperlink associated with a resource.
619  /// </summary>
620  ASPOSE_TASKS_SHARED_API void set_Hyperlink(System::String value) override;
621  /// <summary>
622  /// Gets the address for a hyperlink associated with a resource.
623  /// </summary>
624  /// <remarks>The full address (Hyperlink Href in Microsoft Project) of the hyperlink is a concatenation of HyperlinkAddress and HyperlinkSubAddress.</remarks>
625  ASPOSE_TASKS_SHARED_API System::String get_HyperlinkAddress() override;
626  /// <summary>
627  /// Sets the address for a hyperlink associated with a resource.
628  /// </summary>
629  /// <remarks>The full address (Hyperlink Href in Microsoft Project) of the hyperlink is a concatenation of HyperlinkAddress and HyperlinkSubAddress.</remarks>
630  ASPOSE_TASKS_SHARED_API void set_HyperlinkAddress(System::String value) override;
631  /// <summary>
632  /// Gets the specific location in a document in a hyperlink associated with a resource.
633  /// </summary>
634  /// <remarks>The full address (Hyperlink Href in Microsoft Project) of the hyperlink is a concatenation of HyperlinkAddress and HyperlinkSubAddress.</remarks>
635  ASPOSE_TASKS_SHARED_API System::String get_HyperlinkSubAddress() override;
636  /// <summary>
637  /// Sets the specific location in a document in a hyperlink associated with a resource.
638  /// </summary>
639  /// <remarks>The full address (Hyperlink Href in Microsoft Project) of the hyperlink is a concatenation of HyperlinkAddress and HyperlinkSubAddress.</remarks>
640  ASPOSE_TASKS_SHARED_API void set_HyperlinkSubAddress(System::String value) override;
641  /// <summary>
642  /// Gets a value of Id.
643  /// </summary>
644  ASPOSE_TASKS_SHARED_API int32_t get_Id();
645  /// <summary>
646  /// Sets a value of Id.
647  /// </summary>
648  ASPOSE_TASKS_SHARED_API void set_Id(int32_t value);
649  /// <summary>
650  /// Gets a value indicating whether Inactive is set or not.
651  /// </summary>
652  ASPOSE_TASKS_SHARED_API NullableBool get_Inactive();
653  /// <summary>
654  /// Sets a value indicating whether Inactive is set or not.
655  /// </summary>
656  ASPOSE_TASKS_SHARED_API void set_Inactive(NullableBool value);
657  /// <summary>
658  /// Gets a value of Initials.
659  /// </summary>
660  ASPOSE_TASKS_SHARED_API System::String get_Initials();
661  /// <summary>
662  /// Sets a value of Initials.
663  /// </summary>
664  ASPOSE_TASKS_SHARED_API void set_Initials(const System::String& value);
665  /// <summary>
666  /// Gets a value indicating whether IsBudget is set or not.
667  /// </summary>
668  ASPOSE_TASKS_SHARED_API NullableBool get_IsBudget();
669  /// <summary>
670  /// Sets a value indicating whether IsBudget is set or not.
671  /// </summary>
672  ASPOSE_TASKS_SHARED_API void set_IsBudget(NullableBool value);
673  /// <summary>
674  /// Gets a value indicating whether IsCostResource is set or not.
675  /// </summary>
676  ASPOSE_TASKS_SHARED_API NullableBool get_IsCostResource();
677  /// <summary>
678  /// Sets a value indicating whether IsCostResource is set or not.
679  /// </summary>
680  ASPOSE_TASKS_SHARED_API void set_IsCostResource(NullableBool value);
681  /// <summary>
682  /// Gets a value indicating whether IsEnterprise is set or not.
683  /// </summary>
684  ASPOSE_TASKS_SHARED_API NullableBool get_IsEnterprise();
685  /// <summary>
686  /// Sets a value indicating whether IsEnterprise is set or not.
687  /// </summary>
688  ASPOSE_TASKS_SHARED_API void set_IsEnterprise(NullableBool value);
689  /// <summary>
690  /// Gets a value indicating whether IsGeneric is set or not.
691  /// </summary>
692  ASPOSE_TASKS_SHARED_API NullableBool get_IsGeneric();
693  /// <summary>
694  /// Sets a value indicating whether IsGeneric is set or not.
695  /// </summary>
696  ASPOSE_TASKS_SHARED_API void set_IsGeneric(NullableBool value);
697  /// <summary>
698  /// Gets a value indicating whether IsNull is set or not.
699  /// </summary>
700  ASPOSE_TASKS_SHARED_API NullableBool get_IsNull();
701  /// <summary>
702  /// Sets a value indicating whether IsNull is set or not.
703  /// </summary>
704  ASPOSE_TASKS_SHARED_API void set_IsNull(NullableBool value);
705  /// <summary>
706  /// Gets a value indicating whether IsTeamAssignmentPool is set or not.
707  /// </summary>
708  ASPOSE_TASKS_SHARED_API bool get_IsTeamAssignmentPool();
709  /// <summary>
710  /// Sets a value indicating whether IsTeamAssignmentPool is set or not.
711  /// </summary>
712  ASPOSE_TASKS_SHARED_API void set_IsTeamAssignmentPool(bool value);
713  /// <summary>
714  /// Gets a value of MaterialLabel.
715  /// </summary>
716  ASPOSE_TASKS_SHARED_API System::String get_MaterialLabel();
717  /// <summary>
718  /// Sets a value of MaterialLabel.
719  /// </summary>
720  ASPOSE_TASKS_SHARED_API void set_MaterialLabel(const System::String& value);
721  /// <summary>
722  /// Gets a value of MaxUnits.
723  /// </summary>
724  ASPOSE_TASKS_SHARED_API double get_MaxUnits();
725  /// <summary>
726  /// Sets a value of MaxUnits.
727  /// </summary>
728  ASPOSE_TASKS_SHARED_API void set_MaxUnits(double value);
729  /// <summary>
730  /// Gets a value of Name.
731  /// </summary>
732  ASPOSE_TASKS_SHARED_API System::String get_Name();
733  /// <summary>
734  /// Sets a value of Name.
735  /// </summary>
736  ASPOSE_TASKS_SHARED_API void set_Name(const System::String& value);
737  /// <summary>
738  /// Gets a value of NotesRTF.
739  /// </summary>
740  ASPOSE_TASKS_SHARED_API System::String get_NotesRTF() override;
741  /// <summary>
742  /// Sets a value of NotesRTF.
743  /// </summary>
744  ASPOSE_TASKS_SHARED_API void set_NotesRTF(System::String value) override;
745  /// <summary>
746  /// Gets a value of NotesText.
747  /// </summary>
748  ASPOSE_TASKS_SHARED_API System::String get_NotesText() override;
749  /// <summary>
750  /// Sets a value of NotesText.
751  /// </summary>
752  ASPOSE_TASKS_SHARED_API void set_NotesText(System::String value) override;
753  /// <summary>
754  /// Gets a value indicating whether Overallocated is set or not.
755  /// </summary>
756  ASPOSE_TASKS_SHARED_API NullableBool get_Overallocated();
757  /// <summary>
758  /// Sets a value indicating whether Overallocated is set or not.
759  /// </summary>
760  ASPOSE_TASKS_SHARED_API void set_Overallocated(NullableBool value);
761  /// <summary>
762  /// Gets a value of OvertimeCost.
763  /// </summary>
764  ASPOSE_TASKS_SHARED_API System::Decimal get_OvertimeCost();
765  /// <summary>
766  /// Sets a value of OvertimeCost.
767  /// </summary>
768  ASPOSE_TASKS_SHARED_API void set_OvertimeCost(System::Decimal value);
769  /// <summary>
770  /// Gets a value of OvertimeRate.
771  /// </summary>
772  ASPOSE_TASKS_SHARED_API System::Decimal get_OvertimeRate();
773  /// <summary>
774  /// Sets a value of OvertimeRate.
775  /// </summary>
776  ASPOSE_TASKS_SHARED_API void set_OvertimeRate(System::Decimal value);
777  /// <summary>
778  /// Gets a value of OvertimeRateFormat.
779  /// </summary>
780  ASPOSE_TASKS_SHARED_API RateFormatType get_OvertimeRateFormat();
781  /// <summary>
782  /// Sets a value of OvertimeRateFormat.
783  /// </summary>
784  ASPOSE_TASKS_SHARED_API void set_OvertimeRateFormat(RateFormatType value);
785  /// <summary>
786  /// Gets a value of OvertimeWork.
787  /// </summary>
788  ASPOSE_TASKS_SHARED_API Duration get_OvertimeWork();
789  /// <summary>
790  /// Sets a value of OvertimeWork.
791  /// </summary>
792  ASPOSE_TASKS_SHARED_API void set_OvertimeWork(Duration value);
793  /// <summary>
794  /// Gets a value of PeakUnits.
795  /// </summary>
796  ASPOSE_TASKS_SHARED_API double get_PeakUnits();
797  /// <summary>
798  /// Sets a value of PeakUnits.
799  /// </summary>
800  ASPOSE_TASKS_SHARED_API void set_PeakUnits(double value);
801  /// <summary>
802  /// Gets a value of PercentWorkComplete.
803  /// </summary>
804  ASPOSE_TASKS_SHARED_API int32_t get_PercentWorkComplete();
805  /// <summary>
806  /// Sets a value of PercentWorkComplete.
807  /// </summary>
808  ASPOSE_TASKS_SHARED_API void set_PercentWorkComplete(int32_t value);
809  /// <summary>
810  /// Gets a value of Phonetics.
811  /// </summary>
812  ASPOSE_TASKS_SHARED_API System::String get_Phonetics();
813  /// <summary>
814  /// Sets a value of Phonetics.
815  /// </summary>
816  ASPOSE_TASKS_SHARED_API void set_Phonetics(const System::String& value);
817  /// <summary>
818  /// Gets a value of RegularWork.
819  /// </summary>
820  ASPOSE_TASKS_SHARED_API Duration get_RegularWork();
821  /// <summary>
822  /// Sets a value of RegularWork.
823  /// </summary>
824  ASPOSE_TASKS_SHARED_API void set_RegularWork(Duration value);
825  /// <summary>
826  /// Gets a value of RemainingCost.
827  /// </summary>
828  ASPOSE_TASKS_SHARED_API System::Decimal get_RemainingCost();
829  /// <summary>
830  /// Sets a value of RemainingCost.
831  /// </summary>
832  ASPOSE_TASKS_SHARED_API void set_RemainingCost(System::Decimal value);
833  /// <summary>
834  /// Gets a value of RemainingOvertimeCost.
835  /// </summary>
836  ASPOSE_TASKS_SHARED_API System::Decimal get_RemainingOvertimeCost();
837  /// <summary>
838  /// Sets a value of RemainingOvertimeCost.
839  /// </summary>
840  ASPOSE_TASKS_SHARED_API void set_RemainingOvertimeCost(System::Decimal value);
841  /// <summary>
842  /// Gets a value of RemainingOvertimeWork.
843  /// </summary>
844  ASPOSE_TASKS_SHARED_API Duration get_RemainingOvertimeWork();
845  /// <summary>
846  /// Sets a value of RemainingOvertimeWork.
847  /// </summary>
848  ASPOSE_TASKS_SHARED_API void set_RemainingOvertimeWork(Duration value);
849  /// <summary>
850  /// Gets a value of RemainingWork.
851  /// </summary>
852  ASPOSE_TASKS_SHARED_API Duration get_RemainingWork();
853  /// <summary>
854  /// Sets a value of RemainingWork.
855  /// </summary>
856  ASPOSE_TASKS_SHARED_API void set_RemainingWork(Duration value);
857  /// <summary>
858  /// Gets a value of StandardRate.
859  /// </summary>
860  ASPOSE_TASKS_SHARED_API System::Decimal get_StandardRate();
861  /// <summary>
862  /// Sets a value of StandardRate.
863  /// </summary>
864  ASPOSE_TASKS_SHARED_API void set_StandardRate(System::Decimal value);
865  /// <summary>
866  /// Gets a value of StandardRateFormat.
867  /// </summary>
868  ASPOSE_TASKS_SHARED_API RateFormatType get_StandardRateFormat();
869  /// <summary>
870  /// Sets a value of StandardRateFormat.
871  /// </summary>
872  ASPOSE_TASKS_SHARED_API void set_StandardRateFormat(RateFormatType value);
873  /// <summary>
874  /// Gets a value of Start.
875  /// </summary>
876  ASPOSE_TASKS_SHARED_API System::DateTime get_Start();
877  /// <summary>
878  /// Sets a value of Start.
879  /// </summary>
880  ASPOSE_TASKS_SHARED_API void set_Start(System::DateTime value);
881  /// <summary>
882  /// Gets a value of SV.
883  /// </summary>
884  ASPOSE_TASKS_SHARED_API double get_SV();
885  /// <summary>
886  /// Sets a value of SV.
887  /// </summary>
888  ASPOSE_TASKS_SHARED_API void set_SV(double value);
889  /// <summary>
890  /// Gets a value of Type.
891  /// </summary>
892  ASPOSE_TASKS_SHARED_API ResourceType get_Type();
893  /// <summary>
894  /// Sets a value of Type.
895  /// </summary>
896  ASPOSE_TASKS_SHARED_API void set_Type(ResourceType value);
897  /// <summary>
898  /// Gets a value of Uid.
899  /// </summary>
900  ASPOSE_TASKS_SHARED_API int32_t get_Uid();
901  /// <summary>
902  /// Sets a value of Uid.
903  /// </summary>
904  ASPOSE_TASKS_SHARED_API void set_Uid(int32_t value);
905  /// <summary>
906  /// Gets a value of WindowsUserAccount.
907  /// </summary>
908  ASPOSE_TASKS_SHARED_API System::String get_WindowsUserAccount();
909  /// <summary>
910  /// Sets a value of WindowsUserAccount.
911  /// </summary>
912  ASPOSE_TASKS_SHARED_API void set_WindowsUserAccount(const System::String& value);
913  /// <summary>
914  /// Gets a value of Work.
915  /// </summary>
916  ASPOSE_TASKS_SHARED_API Duration get_Work();
917  /// <summary>
918  /// Sets a value of Work.
919  /// </summary>
920  ASPOSE_TASKS_SHARED_API void set_Work(Duration value);
921  /// <summary>
922  /// Gets a value of Workgroup.
923  /// </summary>
924  ASPOSE_TASKS_SHARED_API WorkGroupType get_Workgroup();
925  /// <summary>
926  /// Sets a value of Workgroup.
927  /// </summary>
928  ASPOSE_TASKS_SHARED_API void set_Workgroup(WorkGroupType value);
929  /// <summary>
930  /// Gets a value of WorkVariance.
931  /// </summary>
932  ASPOSE_TASKS_SHARED_API double get_WorkVariance();
933  /// <summary>
934  /// Sets a value of WorkVariance.
935  /// </summary>
936  ASPOSE_TASKS_SHARED_API void set_WorkVariance(double value);
937 
938  /// <summary>
939  /// Returns a value indicating whether this instance is equal to a specified instance of the <see cref="Resource"></see> class.
940  /// </summary>
941  /// <param name="other">The specified instance of the <see cref="Resource"></see> class to compare with this instance.</param>
942  /// <returns><b>True</b> if the specified instance of the <see cref="Resource"></see> class has the same Uid value as this instance; otherwise, <b>false</b>.</returns>
943  ASPOSE_TASKS_SHARED_API bool Equals(System::SharedPtr<Resource> other) override;
944  /// <summary>
945  /// Returns a value indicating whether this instance is equal to a specified object.
946  /// </summary>
947  /// <param name="obj">The object to compare with this instance.</param>
948  /// <returns><b>True</b> if the specified object is a Resource that has the same Uid value as this instance; otherwise, <b>false</b>.</returns>
949  ASPOSE_TASKS_SHARED_API bool Equals(System::SharedPtr<System::Object> obj) override;
950  /// <summary>
951  /// Returns a hash code value for the instance of the <see cref="Resource"></see> class.
952  /// </summary>
953  /// <returns>returns a hash code value for this object.</returns>
954  ASPOSE_TASKS_SHARED_API int32_t GetHashCode() const override;
955  /// <summary>
956  /// Returns short string representation of the instance of the <see cref="Resource"></see> class.
957  /// The exact details of the representation are unspecified and subject to change.
958  /// </summary>
959  /// <returns>short string which represents resource object.</returns>
960  ASPOSE_TASKS_SHARED_API System::String ToString() const override;
961  /// <summary>
962  /// Returns the value to which the property is mapped in this container.
963  /// </summary>
964  /// <param name="key">the specified property key. <see cref="Rsc"></see> for getting the property key.</param>
965  /// <typeparam name="T">the type of the mapped value.</typeparam>
966  /// <returns>the value to which the property is mapped in this container.</returns>
967  template <typename T>
968  T Get(const Key<T, RscKey>& key) const
969  {
970  System::SharedPtr<System::Object> res;
971  if (this->GetCalculatedValue(key.get_KeyType(), res))
972  {
973  return System::ExplicitCast<T>(res);
974  }
975 
976  return this->container->template CheckPropAndGet<T>(key);
977  }
978 
979  /// <summary>
980  /// Maps the specified property to the specified value in this container.
981  /// </summary>
982  /// <param name="key">the specified property key. <see cref="Rsc"></see> for getting the property key.</param>
983  /// <param name="val">the value.</param>
984  /// <typeparam name="T">the type of the mapped value.</typeparam>
985  template <typename T>
986  void Set(const Key<T, RscKey>& key, const T& val)
987  {
988 
989  // ReSharper disable once RedundantCast
990  if (this->SetCalculatedValue(key.get_KeyType(), System::ExplicitCast<System::Object>(val)))
991  {
992  return;
993  }
994 
995  this->container->template CheckPropAndSet<T>(key, val);
996  }
997 
998  /// <summary>
999  /// Maps the specified property to the specified value in this container.
1000  /// </summary>
1001  /// <param name="key">the specified property key. <see cref="Rsc"></see> for getting the property key.</param>
1002  /// <param name="val">the value.</param>
1003  ASPOSE_TASKS_SHARED_API void Set(const Key<System::DateTime, RscKey>& key, const System::DateTime& val);
1004  /// <summary>
1005  /// Deletes a resource and its assignments from project.
1006  /// </summary>
1007  ASPOSE_TASKS_SHARED_API void Delete();
1008  /// <summary>
1009  /// Returns an instance of the <see cref="TimephasedDataCollection"></see> class for this object with the <see cref="TimephasedData"></see> values within given start and end dates of specified <see cref="TimephasedDataType"></see>.
1010  /// </summary>
1011  /// <param name="start">The start date for the time phased data.</param>
1012  /// <param name="end">The end date for the time phased data.</param>
1013  /// <param name="timephasedType">The type of time phased data (<see cref="Aspose::Tasks::TimephasedDataType"></see>).</param>
1014  /// <returns>List of <see cref="TimephasedData"></see>.</returns>
1015  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimephasedDataCollection> GetTimephasedData(System::DateTime start, System::DateTime end, TimephasedDataType timephasedType);
1016  /// <summary>
1017  /// Returns <see cref="TimephasedDataCollection"></see> for this object with <see cref="TimephasedData"></see>values within given start and end dates.
1018  /// </summary>
1019  /// <param name="start">The start date for the time phased data.</param>
1020  /// <param name="end">The end date for the time phased data.</param>
1021  /// <returns>List of <see cref="Aspose::Tasks::TimephasedData"></see>.</returns>
1022  ASPOSE_TASKS_SHARED_API System::SharedPtr<TimephasedDataCollection> GetTimephasedData(System::DateTime start, System::DateTime end);
1023 
1024 protected:
1025 
1026  static ASPOSE_TASKS_SHARED_API System::Guid& RootResourceGuid();
1027  static ASPOSE_TASKS_SHARED_API System::Guid& UnassignedResourceGuid();
1028 
1029  /// <summary>
1030  /// Gets parent project for this container.
1031  /// </summary>
1032  ASPOSE_TASKS_SHARED_API void set_ParentProject(const System::SharedPtr<Project>& value);
1033  /// <summary>
1034  /// Gets the values of an extended attribute.
1035  /// </summary>
1036  /// <remarks>
1037  /// Two pieces of data are necessary - a pointer back to the extended attribute table
1038  /// which is specified either by the unique ID or the Field ID, and the value
1039  /// which is specified either with the value, or a pointer back to the value list.
1040  /// </remarks>
1041  ASPOSE_TASKS_SHARED_API void set_ExtendedAttributes(const System::SharedPtr<ExtendedAttributeCollection>& value);
1042  /// <summary>
1043  /// Gets a BaselineCollection instance for this object.
1044  /// The baseline values for a resource.
1045  /// </summary>
1046  ASPOSE_TASKS_SHARED_API void set_Baselines(const System::SharedPtr<BaselineCollection>& value);
1047  /// <summary>
1048  /// Gets an OutlineCodeCollection object.
1049  /// The value of an outline code.
1050  /// </summary>
1051  /// <remarks>
1052  /// Two pieces of data are necessary - a pointer to the outline code table that
1053  /// is specified by the FieldID, and the value that is specified either by
1054  /// the ValueID or ValueGUID pointer to the value list.
1055  /// </remarks>
1056  ASPOSE_TASKS_SHARED_API void set_OutlineCode(const System::SharedPtr<OutlineCodeCollection>& value);
1057  /// <summary>
1058  /// Gets a the instance of the <see cref="AvailabilityPeriodCollection"></see> class.
1059  /// The collection of periods during which a resource is available.
1060  /// </summary>
1061  ASPOSE_TASKS_SHARED_API void set_AvailabilityPeriods(const System::SharedPtr<AvailabilityPeriodCollection>& value);
1062  /// <summary>
1063  /// Gets a the instance of the <see cref="RateCollection"></see> class for this object.
1064  /// The collection of periods and rates associated with each one.
1065  /// </summary>
1066  ASPOSE_TASKS_SHARED_API void set_Rates(const System::SharedPtr<RateCollection>& value);
1067  /// <summary>
1068  /// Gets a collection of resource assignments for this object.
1069  /// </summary>
1070  ASPOSE_TASKS_SHARED_API void set_Assignments(const System::SharedPtr<ResourceAssignmentCollection>& value);
1071  /// <summary>
1072  /// Gets resource properties collection.
1073  /// </summary>
1074  ASPOSE_TASKS_SHARED_API const System::SharedPtr<Properties::ResourcePropertyCollection>& get_Properties() const;
1075  ASPOSE_TASKS_SHARED_API System::Decimal get_BaselineCost();
1076 
1077  ASPOSE_TASKS_SHARED_API Resource(const System::SharedPtr<Project>& parentProject);
1078 
1079  ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(Resource, CODEPORTING_ARGS(const System::SharedPtr<Project>& parentProject));
1080 
1081  /// <summary>
1082  /// Initializes a new instance of the <see cref="Resource"></see> class with the specified name.
1083  /// </summary>
1084  /// <param name="name">the specified resource name.</param>
1085  /// <param name="parentProject">The parent project.</param>
1086  ASPOSE_TASKS_SHARED_API Resource(const System::String& name, const System::SharedPtr<Project>& parentProject);
1087 
1088  ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(Resource, CODEPORTING_ARGS(const System::String& name, const System::SharedPtr<Project>& parentProject));
1089 
1090  ASPOSE_TASKS_SHARED_API Resource();
1091 
1092  ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(Resource, CODEPORTING_ARGS());
1093  template <typename T>
1094  void SetDirectly(Key<T, RscKey> key, T val)
1095  {
1096  this->container->template CheckPropAndSet<T>(key, val);
1097  }
1098 
1099  /// <summary>
1100  /// Sets Availability in binary format (which is stored in MSP Server database)
1101  /// </summary>
1102  ASPOSE_TASKS_SHARED_API void SetAvailability(const System::ArrayPtr<uint8_t>& value);
1103  ASPOSE_TASKS_SHARED_API bool SetCalculatedValue(RscKey keyType, const System::SharedPtr<System::Object>& v);
1104  ASPOSE_TASKS_SHARED_API bool GetCalculatedValue(RscKey key, System::SharedPtr<System::Object>& res) const;
1105  ASPOSE_TASKS_SHARED_API void SetBaseline(BaselineType baselineType);
1106  ASPOSE_TASKS_SHARED_API void ClearActuals();
1107  ASPOSE_TASKS_SHARED_API double GetMaxUnitsForDate(System::DateTime date);
1108  ASPOSE_TASKS_SHARED_API System::String GetStandardRateString();
1109  ASPOSE_TASKS_SHARED_API System::String GetOvertimeRateString();
1110 
1111  virtual ASPOSE_TASKS_SHARED_API ~Resource();
1112 
1113  #ifdef ASPOSE_GET_SHARED_MEMBERS
1114  ASPOSE_TASKS_SHARED_API void GetSharedMembers(System::Object::shared_members_type& result) const override;
1115  #endif
1116 
1117 
1118 private:
1119 
1120  System::SharedPtr<PropertyContainer<RscKey>> container;
1121  System::SharedPtr<OutlineCodeCollection> outlineCode;
1122  System::SharedPtr<TimephasedDataCollection> timephasedData;
1123  System::WeakPtr<Project> pr_ParentProject;
1124  System::SharedPtr<ExtendedAttributeCollection> pr_ExtendedAttributes;
1125  System::SharedPtr<BaselineCollection> pr_Baselines;
1126  System::SharedPtr<AvailabilityPeriodCollection> pr_AvailabilityPeriods;
1127  System::SharedPtr<RateCollection> pr_Rates;
1128  System::SharedPtr<ResourceAssignmentCollection> pr_Assignments;
1129 
1130  ASPOSE_TASKS_SHARED_API bool get_HasChildren() override;
1131  ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<IExtendedAttributeParent>>> get_Items() override;
1132 
1133  System::SharedPtr<Properties::ResourcePropertyCollection> pr_Properties;
1134 
1135  /// <summary>
1136  /// Gets resource properties collection.
1137  /// </summary>
1138  ASPOSE_TASKS_SHARED_API void set_Properties(const System::SharedPtr<Properties::ResourcePropertyCollection>& value);
1139 
1140  void InitBools();
1141  void SetBaselineValues(const System::SharedPtr<Baseline>& bl);
1142  void SetBaselineTimephased(const System::SharedPtr<Baseline>& bl);
1143  void ClearBaselineTD(TimephasedDataType workType, TimephasedDataType costType);
1144  void InitDefaultValues();
1145  void FillBaselineTDs(System::DateTime start, System::DateTime end, TimephasedDataType timephasedType, const System::SharedPtr<System::Collections::Generic::IList<System::SharedPtr<Aspose::Tasks::TimephasedData>>>& timephased);
1146  void FillResourceCostTDs(System::DateTime start, System::DateTime end, const System::SharedPtr<System::Collections::Generic::IList<System::SharedPtr<Aspose::Tasks::TimephasedData>>>& timephased);
1147  void FillResourceWorkTDs(System::DateTime start, System::DateTime end, const System::SharedPtr<System::Collections::Generic::IList<System::SharedPtr<Aspose::Tasks::TimephasedData>>>& timephased);
1148  void AddBaselineTDs();
1149 
1150 };
1151 
1152 } // namespace Tasks
1153 } // namespace Aspose
1154 
1155 
A class for boolean values with possibility to check whether the value was defined or not.
Definition: NullableBool.h:21
Definition: Asn.h:12
T Get(const Key< T, RscKey > &key) const
Returns the value to which the property is mapped in this container.
Definition: Resource.h:968
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
Represents a resource in a project.
Definition: Resource.h:207
Represents a collection of Resource objects.
Definition: ResourceCollection.h:101
Represents a resource assignment in a project.
Definition: ResourceAssignment.h:225
Represents a collection of ResourceAssignment objects.
Definition: ResourceAssignmentCollection.h:101
Allows to specify additional options when saving project to CSV.
Definition: CsvOptions.h:52
void Set(const Key< T, RscKey > &key, const T &val)
Maps the specified property to the specified value in this container.
Definition: Resource.h:986