8 #include <system/eventhandler.h>
9 #include <system/collections/ilist.h>
10 #include <system/collections/icomparer.h>
11 #include <system/array.h>
14 #include "aspose.tasks.cpp/aspose_tasks_api_defs.h"
20 class BaselineTimephasedDataMaker;
21 namespace Calculations
23 class TimeScaledCalculator;
30 class MPP9ResourceAssignmentReader;
31 class MppTimephasedDataWriter;
35 class TimephasedDataNodeReader;
38 class OptimizedForSearchingTimephasedDataCollection;
39 namespace Recalculation
41 class TaskSplitCalculator;
44 class ResourceAssignment;
45 class ResourceAssignmentTimephasedDataCollection;
46 class ResourceTimephasedDataCollection;
49 class TaskTimephasedDataCollection;
56 enum class TimephasedDataType : int8_t;
57 class TimephasedWorkCostSelector;
70 template <
typename>
class IEnumerable;
71 template <
typename>
class IEnumerator;
72 template <
typename>
class List;
86 class ASPOSE_TASKS_SHARED_CLASS
TimephasedDataCollection :
public System::Collections::Generic::IList<System::SharedPtr<Aspose::Tasks::TimephasedData>>
89 typedef System::Collections::Generic::IList<System::SharedPtr<Aspose::Tasks::TimephasedData>> BaseType;
91 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
92 ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
94 friend class Aspose::Tasks::Calculations::TimeScaledCalculator;
98 friend class Aspose::Tasks::BaselineTimephasedDataMaker;
99 friend class Aspose::Tasks::Util::BaselineHelper;
100 friend class Aspose::Tasks::IO::MSProject::MPP9ResourceAssignmentReader;
101 friend class Aspose::Tasks::IO::MSProject::MppTimephasedDataWriter;
102 friend class Aspose::Tasks::IO::Xml::TimephasedDataNodeReader;
103 friend class Aspose::Tasks::TaskPlanner;
104 friend class Aspose::Tasks::Recalculation::TaskSplitCalculator;
105 friend class Aspose::Tasks::ResourceAssignmentTimephasedDataCollection;
106 friend class Aspose::Tasks::ResourceTimephasedDataCollection;
107 friend class Aspose::Tasks::TaskTimephasedDataCollection;
109 friend class Aspose::Tasks::TimephasedWorkCostSelector;
113 class ASPOSE_TASKS_SHARED_CLASS TimephasedDataFinishDateAscComparer final :
public System::Collections::Generic::IComparer<System::SharedPtr<Aspose::Tasks::TimephasedData>>
115 typedef TimephasedDataFinishDateAscComparer
ThisType;
116 typedef System::Collections::Generic::IComparer<System::SharedPtr<Aspose::Tasks::TimephasedData>> BaseType;
118 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
119 ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
129 int32_t Compare(
const System::SharedPtr<TimephasedData>& x,
const System::SharedPtr<TimephasedData>& y)
const override;
139 ASPOSE_TASKS_SHARED_API int32_t get_Count()
const override;
142 ASPOSE_TASKS_SHARED_API
bool get_IsReadOnly()
const override;
150 ASPOSE_TASKS_SHARED_API System::SharedPtr<TimephasedData> idx_get(int32_t index)
const override;
157 ASPOSE_TASKS_SHARED_API
void idx_set(int32_t index, System::SharedPtr<TimephasedData> value)
override;
162 ASPOSE_TASKS_SHARED_API
void Clear()
override;
168 ASPOSE_TASKS_SHARED_API
bool Contains(
const System::SharedPtr<TimephasedData>& item)
const override;
174 ASPOSE_TASKS_SHARED_API
void Add(
const System::SharedPtr<TimephasedData>& item)
override;
179 ASPOSE_TASKS_SHARED_API
void AddRange(
const System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<TimephasedData>>>& timephasedCollection);
184 ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<TimephasedData>>> ToList();
199 ASPOSE_TASKS_SHARED_API
void CopyTo(System::ArrayPtr<System::SharedPtr<TimephasedData>> array, int32_t arrayIndex)
override;
208 ASPOSE_TASKS_SHARED_API
bool Remove(
const System::SharedPtr<TimephasedData>& item)
override;
213 ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::IEnumerator<System::SharedPtr<TimephasedData>>> GetEnumerator()
override;
227 ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::IList<System::SharedPtr<TimephasedData>>> SelectBetweenStartAndFinish(TimephasedDataType timephasedDataType, System::DateTime startTime, System::DateTime finishTime);
231 ASPOSE_TASKS_SHARED_API System::EventHandler<> get_Changed()
const;
232 ASPOSE_TASKS_SHARED_API
void set_Changed(System::EventHandler<> value);
238 ASPOSE_TASKS_SHARED_API
TimephasedDataCollection(
const System::SharedPtr<System::Collections::Generic::IList<System::SharedPtr<TimephasedData>>>& items);
240 ASPOSE_TASKS_SHARED_API System::TimeSpan GetDayWork(
const System::SharedPtr<Calendar>& calendar, TimephasedDataType timephasedDataType, System::DateTime date);
241 ASPOSE_TASKS_SHARED_API Timephased::WorkInterval GetIntervalWork(
const System::SharedPtr<Calendar>& calendar, TimephasedDataType timephasedDataType, System::DateTime startDate, System::DateTime finishDate);
242 ASPOSE_TASKS_SHARED_API Timephased::CostInterval GetIntervalCost(
const System::SharedPtr<Calendar>& calendar, TimephasedDataType timephasedDataType, System::DateTime startDate, System::DateTime finishDate);
248 ASPOSE_TASKS_SHARED_API
void AddInternal(
const System::SharedPtr<TimephasedData>& item);
253 ASPOSE_TASKS_SHARED_API
void AddRangeInternal(
const System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<TimephasedData>>>& timephasedCollection);
258 ASPOSE_TASKS_SHARED_API
void AddRangeInternal(
const System::SharedPtr<TimephasedDataCollection>& timephasedCollection);
259 ASPOSE_TASKS_SHARED_API int32_t GetSearchDictionaryCount();
260 ASPOSE_TASKS_SHARED_API System::TimeSpan GetDuration();
267 virtual ASPOSE_TASKS_SHARED_API
void AddInternal(System::SharedPtr<TimephasedData> item,
bool isCustomTd);
268 virtual ASPOSE_TASKS_SHARED_API
void InsertInternal(int32_t index, System::SharedPtr<TimephasedData> item);
269 ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<TimephasedData>>> GetByType(TimephasedDataType type);
273 #ifdef ASPOSE_GET_SHARED_MEMBERS
274 ASPOSE_TASKS_SHARED_API
void GetSharedMembers(System::Object::shared_members_type& result)
const override;
280 System::SharedPtr<OptimizedForSearchingTimephasedDataCollection> timephasesOptimizedForSearchingByStartDate;
281 System::SharedPtr<System::Collections::Generic::IList<System::SharedPtr<TimephasedData>>> items;
282 System::EventHandler<> pr_Changed;
284 int32_t IndexOf(
const System::SharedPtr<TimephasedData>& item)
const override;
285 void Insert(int32_t index,
const System::SharedPtr<TimephasedData>& item)
override;
286 void RemoveAt(int32_t index)
override;
291 void InitializeSearch(
const System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<TimephasedData>>>& list);
300 System::SharedPtr<System::Collections::Generic::IList<System::SharedPtr<TimephasedData>>> GetTimephasedData()
const;
306 void AddRangeInternal(
const System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<TimephasedData>>>& timephasedCollection,
bool collectionContainsCustomTds);