8 #include <system/timespan.h>
9 #include <system/eventhandler.h>
10 #include <system/collections/list.h>
11 #include <system/collections/ilist.h>
12 #include <system/array.h>
14 #include "aspose.tasks.cpp/IReadOnlyWorkingTimeCollection.h"
15 #include "aspose.tasks.cpp/aspose_tasks_api_defs.h"
21 class AutoRecalculationState;
23 class CalendarDatesCalculator;
24 class CalendarException;
25 class CalendarWorkingTimesBackwardsEnumerator;
26 class CalendarWorkingTimesForwardEnumerator;
27 class IntersectedCalendar;
32 class HtmlCalendarExceptionsReader;
33 class HtmlCalendarTableReader;
37 class MPPTimephasedDataReader;
41 class WeekDayNodeWriter;
44 class ResourceAssignment;
45 class TimephasedDataCalculationUtil;
56 template <
typename>
class IEnumerable;
57 template <
typename>
class IEnumerator;
74 class ASPOSE_TASKS_SHARED_CLASS
WorkingTimeCollection :
public System::Collections::Generic::IList<System::SharedPtr<Aspose::Tasks::WorkingTime>>,
public Aspose::Tasks::IReadOnlyWorkingTimeCollection
77 typedef System::Collections::Generic::IList<System::SharedPtr<Aspose::Tasks::WorkingTime>> BaseType;
78 typedef Aspose::Tasks::IReadOnlyWorkingTimeCollection BaseType1;
80 typedef ::System::BaseTypesInfo<BaseType, BaseType1> ThisTypeBaseTypesInfo;
81 ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
83 friend class Aspose::Tasks::IntersectedCalendar;
86 friend class Aspose::Tasks::CalendarWorkingTimesForwardEnumerator;
88 friend class Aspose::Tasks::TimephasedDataCalculationUtil;
89 friend class Aspose::Tasks::IO::Html::HtmlCalendarExceptionsReader;
90 friend class Aspose::Tasks::IO::Html::HtmlCalendarTableReader;
91 friend class Aspose::Tasks::IO::MSProject::MPPTimephasedDataReader;
92 friend class Aspose::Tasks::IO::Xml::WeekDayNodeWriter;
93 friend class Aspose::Tasks::AutoRecalculationState;
94 friend class Aspose::Tasks::CalendarDatesCalculator;
95 friend class Aspose::Tasks::CalendarWorkingTimesBackwardsEnumerator;
102 using iterator =
typename iterator_holder_type::iterator;
115 ASPOSE_TASKS_SHARED_API int32_t get_Count()
const override;
122 ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkingTime> idx_get(int32_t index)
const override;
128 ASPOSE_TASKS_SHARED_API
void idx_set(int32_t index, System::SharedPtr<WorkingTime> value)
override;
134 ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::IEnumerator<System::SharedPtr<WorkingTime>>> GetEnumerator()
override;
140 ASPOSE_TASKS_SHARED_API
bool Remove(
const System::SharedPtr<WorkingTime>& item)
override;
145 ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<WorkingTime>>> ToList();
146 ASPOSE_TASKS_SHARED_API
void Add(
const System::SharedPtr<WorkingTime>& item)
override;
153 ASPOSE_TASKS_SHARED_API
bool Contains(
const System::SharedPtr<WorkingTime>& item)
const override;
159 ASPOSE_TASKS_SHARED_API
void CopyTo(System::ArrayPtr<System::SharedPtr<WorkingTime>> array, int32_t arrayIndex)
override;
163 ASPOSE_TASKS_SHARED_API
void Clear()
override;
166 ASPOSE_TASKS_SHARED_API
iterator begin() noexcept;
169 ASPOSE_TASKS_SHARED_API
iterator end() noexcept;
206 ASPOSE_TASKS_SHARED_API System::SharedPtr<
WorkingTime> get_First();
207 ASPOSE_TASKS_SHARED_API System::SharedPtr<
WorkingTime> get_Last();
208 ASPOSE_TASKS_SHARED_API System::TimeSpan get_TotalFrom();
209 ASPOSE_TASKS_SHARED_API System::TimeSpan get_TotalTo();
210 ASPOSE_TASKS_SHARED_API System::TimeSpan get_TotalSpan();
211 ASPOSE_TASKS_SHARED_API System::String get_DebuggerDisplay();
213 System::EventHandler<> CollectionChanged;
217 ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(
WorkingTimeCollection, CODEPORTING_ARGS());
219 ASPOSE_TASKS_SHARED_API
WorkingTimeCollection(const System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<
WorkingTime>>>& workingTimes);
221 ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(
WorkingTimeCollection, CODEPORTING_ARGS(const System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<
WorkingTime>>>& workingTimes));
223 ASPOSE_TASKS_SHARED_API
void Sort();
224 ASPOSE_TASKS_SHARED_API
void UpdateWorkingTimes(const System::SharedPtr<System::Collections::Generic::IList<System::SharedPtr<
WorkingTime>>>& times);
225 ASPOSE_TASKS_SHARED_API System::TimeSpan GetIntersectSpan(const System::SharedPtr<
WorkingTime>& wt);
226 ASPOSE_TASKS_SHARED_API System::DateTime GetDayStart(System::DateTime date, System::TimeSpan nonWorkingDayStart);
227 ASPOSE_TASKS_SHARED_API System::TimeSpan GetWorkingHours();
228 ASPOSE_TASKS_SHARED_API System::TimeSpan GetDifferenceFromWorkStart(System::DateTime start);
229 ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Text::StringBuilder> Dump(const System::SharedPtr<System::Text::StringBuilder>& sb);
230 ASPOSE_TASKS_SHARED_API System::String Dump();
234 #ifdef ASPOSE_GET_SHARED_MEMBERS
235 ASPOSE_TASKS_SHARED_API
void GetSharedMembers(System::Object::shared_members_type& result)
const override;
241 static System::SharedPtr<WorkingTimeCollection>& EmptyInstance();
243 System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<WorkingTime>>> workingTimes;
245 bool get_IsReadOnly()
const override;
249 System::TimeSpan totalFrom;
250 System::TimeSpan totalTo;
251 System::TimeSpan totalSpan;
258 int32_t IndexOf(
const System::SharedPtr<WorkingTime>& item)
const override;
264 void Insert(int32_t index,
const System::SharedPtr<WorkingTime>& item)
override;
269 void RemoveAt(int32_t index)
override;
270 bool AddInternal(
const System::SharedPtr<WorkingTime>& item);
271 bool InvalidateSpans();