8 #include <system/string.h>
9 #include <system/nullable.h>
10 #include <system/iequatable.h>
11 #include <system/guid.h>
12 #include <system/date_time.h>
15 #include "aspose.tasks.cpp/NullableBool.h"
16 #include "aspose.tasks.cpp/ICalendar.h"
17 #include "aspose.tasks.cpp/aspose_tasks_api_defs.h"
23 class AssignmentBaseline;
24 class AutoRecalculationState;
25 class BaselineTimephasedDataMaker;
26 namespace Calculations
28 class RescheduleIncompleteWorkCalculator;
29 class ResourceAssignmentCalculator;
30 class ResourceAssignmentPeakCalculator;
31 class ResourceCalculator;
32 class ResourceOverAllocationCalculator;
33 class TaskStatusCalculator;
34 class TimephasedDataCalculator;
35 class TimeScaledCalculator;
37 class CalendarCollection;
38 class CalendarDatesCalculator;
39 class CalendarException;
40 class CalendarExceptionCollection;
41 class CalendarExceptionCollectionWithCache;
42 namespace Connectivity
44 class MpdCalendarMapper;
45 class MspCalendarMapper;
47 class PmCalendarMapper;
48 class PrimaveraDbReader;
50 class DailyCalendarRepetition;
51 class DailyWorkRepetition;
52 class DatesCalculator;
58 class CalendarRootFilter;
60 template <
typename,
typename>
class IKeyValueCache;
61 class IntersectedCalendar;
66 class HtmlCalendarTableReader;
74 class Mpp12CalendarReader;
75 class Mpp12CalendarWriter;
77 class Mpp14CalendarReader;
78 class Mpp14CalendarWriter;
80 class MPP14ResourceWriter;
81 class Mpp15CalendarReader;
82 class Mpp15CalendarWriter;
83 class Mpp9CalendarReader;
84 class Mpp9CalendarWriter;
86 class MppCalendarReader;
87 class MPPProjectPropsReader;
88 class MPPProjectPropsWriter;
90 class MPPResourceReader;
92 class MPPTimephasedDataReader;
93 class MppTimephasedDataWriter;
94 class MppWeekDayReader;
96 namespace PrimaveraXml
99 class PrimaveraCalendarNodeReader;
100 class PrimaveraReader;
101 class PrimaveraResourceNodeReader;
105 namespace InternalApi
107 class InternalApiProjectSerializer;
110 class CalendarToRawValuesMapper;
111 class ProjectCalendarsMapper;
112 class ProjectRootMapper;
118 class XerAssignmentReader;
119 class XerCalendarReader;
120 class XerPrimaveraReader;
121 class XerProjectNormalizer;
125 class CalendarFactory;
126 class CalendarNodeReader;
127 class CalendarNodeWriter;
128 class ResourceNodeReader;
129 class TaskNodeReader;
130 class TimephasedDataNodeReader;
131 class WeekDayNodeReader;
136 class IReadOnlyWorkingTimeCollection;
138 class MonthlyRepetitionBase;
140 class PercentCompleteCalculator;
142 class ProjectIntegrityValidator;
144 class ProjectWorkUpdater;
145 namespace Recalculation
147 class TaskSplitCalculator;
151 namespace Calculators
153 class CalendarDayRecurrenceDateCalculator;
154 class DefaultRecurrenceDateCalculator;
155 class RecurrenceDateCalculatorBase;
159 class ResourceAssignment;
162 class HtmlCalendarTable;
164 class PrimaveraCalendarNodeWriter;
165 class XerCalendarTable;
169 class ConstraintSolver;
170 class FromStartScheduler;
171 class TopsortCriticalPath;
173 class SplitsCalculator;
177 class TaskPlannerAssignmentManager;
178 class TaskWarningCalculator;
181 class TimephasedDataByScaledEnumerator;
182 class TimeScaledWorkContourBuilder;
184 class TimephasedDataByScaledMaker;
185 class TimephasedDataCalculationUtil;
186 class TimephasedDataMaker;
187 class TimephasedWorkCostSelector;
188 class TimeScaledExceptions;
189 template <
typename>
class TimeScaledParentUnit;
192 class CalendarHelper;
196 class RecurringTaskParametersValidator;
199 class WeekDayCollection;
200 class WeeklyRepetitionBase;
201 class WorkingTimeCollection;
203 class WorkWeekCollection;
204 class YearlyRepetitionBase;
284 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
285 ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
289 class CalendarCacheKey;
293 friend class Aspose::Tasks::Calculations::RescheduleIncompleteWorkCalculator;
294 friend class Aspose::Tasks::Calculations::ResourceOverAllocationCalculator;
295 friend class Aspose::Tasks::Calculations::TimeScaledCalculator;
296 friend class Aspose::Tasks::Calculations::ResourceAssignmentCalculator;
297 friend class Aspose::Tasks::Calculations::ResourceAssignmentPeakCalculator;
298 friend class Aspose::Tasks::Calculations::ResourceCalculator;
299 friend class Aspose::Tasks::Calculations::TaskStatusCalculator;
300 friend class Aspose::Tasks::Calculations::TimephasedDataCalculator;
301 friend class Aspose::Tasks::IntersectedCalendar;
303 friend class Aspose::Tasks::IO::PrimaveraXml::P6XmlUtils;
304 friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraCalendarNodeReader;
305 friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraReader;
306 friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraResourceNodeReader;
310 friend class Aspose::Tasks::BaselineTimephasedDataMaker;
311 friend class Aspose::Tasks::TimephasedDataByScaledMaker;
312 friend class Aspose::Tasks::Timephased::TimeScaledWorkContourBuilder;
313 friend class Aspose::Tasks::Timephased::TimephasedDataByScaledEnumerator;
314 friend class Aspose::Tasks::TimephasedDataCalculationUtil;
315 template<
typename FT0>
friend class Aspose::Tasks::TimeScaledParentUnit;
316 friend class Aspose::Tasks::Filters::CalendarRootFilter;
317 friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::CalendarToRawValuesMapper;
318 friend class Aspose::Tasks::IO::Pwa::InternalApi::InternalApiProjectSerializer;
319 friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectRootMapper;
320 friend class Aspose::Tasks::IO::Xml::CalendarFactory;
321 friend class Aspose::Tasks::EVCalculator;
322 friend class Aspose::Tasks::Connectivity::MpdCalendarMapper;
323 friend class Aspose::Tasks::Connectivity::MspCalendarMapper;
324 friend class Aspose::Tasks::Connectivity::MspDbUtils;
325 friend class Aspose::Tasks::Connectivity::PmCalendarMapper;
326 friend class Aspose::Tasks::Connectivity::PrimaveraDbReader;
327 friend class Aspose::Tasks::IO::Html::HtmlCalendarTableReader;
328 friend class Aspose::Tasks::IO::MSProject::Mpp12CalendarReader;
329 friend class Aspose::Tasks::IO::MSProject::MppCalendarReader;
330 friend class Aspose::Tasks::IO::MSProject::MPP12Reader;
331 friend class Aspose::Tasks::IO::MSProject::MPPReader;
332 friend class Aspose::Tasks::IO::MSProject::MPPResourceReader;
333 friend class Aspose::Tasks::IO::MSProject::MppWeekDayReader;
334 friend class Aspose::Tasks::IO::MSProject::Mpp14CalendarReader;
335 friend class Aspose::Tasks::IO::MSProject::MPP14Reader;
336 friend class Aspose::Tasks::IO::MSProject::Mpp15CalendarReader;
337 friend class Aspose::Tasks::IO::MSProject::Mpp15CalendarWriter;
338 friend class Aspose::Tasks::IO::MSProject::Mpp14CalendarWriter;
339 friend class Aspose::Tasks::IO::MSProject::MPP14ResourceWriter;
340 friend class Aspose::Tasks::IO::MSProject::Mpp9CalendarReader;
341 friend class Aspose::Tasks::IO::MSProject::MPP9Reader;
342 friend class Aspose::Tasks::IO::MSProject::MPPProjectPropsReader;
343 friend class Aspose::Tasks::IO::MSProject::MPPTimephasedDataReader;
344 friend class Aspose::Tasks::IO::MSProject::Mpp12CalendarWriter;
345 friend class Aspose::Tasks::IO::MSProject::MPPTaskWriter;
346 friend class Aspose::Tasks::IO::MSProject::Mpp9CalendarWriter;
347 friend class Aspose::Tasks::IO::MSProject::MPPProjectPropsWriter;
348 friend class Aspose::Tasks::IO::MSProject::MppTimephasedDataWriter;
349 friend class Aspose::Tasks::IO::Mpx::MpxReader;
350 friend class Aspose::Tasks::IO::Xer::XerPrimaveraReader;
351 friend class Aspose::Tasks::IO::Xer::XerAssignmentReader;
352 friend class Aspose::Tasks::IO::Xer::XerCalendarReader;
353 friend class Aspose::Tasks::IO::Xer::XerProjectNormalizer;
354 friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectCalendarsMapper;
355 friend class Aspose::Tasks::IO::Xml::CalendarNodeReader;
356 friend class Aspose::Tasks::IO::Xml::CalendarNodeWriter;
357 friend class Aspose::Tasks::IO::Xml::ResourceNodeReader;
358 friend class Aspose::Tasks::IO::Xml::TaskNodeReader;
359 friend class Aspose::Tasks::IO::Xml::TimephasedDataNodeReader;
360 friend class Aspose::Tasks::IO::Xml::WeekDayNodeReader;
361 friend class Aspose::Tasks::IO::Xml::XmlReader;
362 friend class Aspose::Tasks::IO::Xml::XmlWriter;
363 friend class Aspose::Tasks::ProjectIntegrityValidator;
364 friend class Aspose::Tasks::AutoRecalculationState;
365 friend class Aspose::Tasks::ProjectState;
366 friend class Aspose::Tasks::CalendarDatesCalculator;
367 friend class Aspose::Tasks::DatesCalculator;
368 friend class Aspose::Tasks::TaskPlannerAssignmentManager;
369 friend class Aspose::Tasks::TaskPlanner;
370 friend class Aspose::Tasks::ManualState;
371 friend class Aspose::Tasks::PercentCompleteCalculator;
372 friend class Aspose::Tasks::ProjectWorkUpdater;
373 friend class Aspose::Tasks::SplitsCalculator;
374 friend class Aspose::Tasks::Recalculation::TaskSplitCalculator;
375 friend class Aspose::Tasks::TaskWarningCalculator;
376 friend class Aspose::Tasks::Recurring::Calculators::CalendarDayRecurrenceDateCalculator;
377 friend class Aspose::Tasks::Recurring::Calculators::RecurrenceDateCalculatorBase;
380 friend class Aspose::Tasks::Recurring::Calculators::DefaultRecurrenceDateCalculator;
384 friend class Aspose::Tasks::Saving::HtmlCalendarTable;
385 friend class Aspose::Tasks::Saving::MpxWriter;
386 friend class Aspose::Tasks::Saving::XerCalendarTable;
387 friend class Aspose::Tasks::Saving::PrimaveraCalendarNodeWriter;
388 friend class Aspose::Tasks::Scheduling::ConstraintSolver;
389 friend class Aspose::Tasks::Scheduling::TopsortCriticalPath;
390 friend class Aspose::Tasks::Scheduling::FromStartScheduler;
392 friend class Aspose::Tasks::TimephasedDataMaker;
393 friend class Aspose::Tasks::TimephasedWorkCostSelector;
394 friend class Aspose::Tasks::TimeScaledExceptions;
395 friend class Aspose::Tasks::Util::CalendarHelper;
396 friend class Aspose::Tasks::Validators::RecurringTaskParametersValidator;
397 friend ASPOSE_TASKS_SHARED_API
bool operator ==(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
398 friend ASPOSE_TASKS_SHARED_API
bool operator !=(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
402 class ASPOSE_TASKS_SHARED_CLASS CalendarCacheKey :
public System::IEquatable<Aspose::Tasks::Calendar::CalendarCacheKey>,
public System::Details::BoxableObjectBase
405 typedef System::IEquatable<Aspose::Tasks::Calendar::CalendarCacheKey>
BaseType;
407 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
408 ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
410 friend ASPOSE_TASKS_SHARED_API
bool operator ==(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
411 friend ASPOSE_TASKS_SHARED_API
bool operator !=(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
415 ASPOSE_TASKS_SHARED_API CalendarCacheKey(int32_t calUid, System::DateTime start, System::DateTime finish,
double units);
418 ASPOSE_TASKS_SHARED_API
bool Equals(Calendar::CalendarCacheKey other)
override;
420 ASPOSE_TASKS_SHARED_API
bool Equals(System::SharedPtr<System::Object> obj)
override;
422 ASPOSE_TASKS_SHARED_API int32_t GetHashCode()
const override;
424 ASPOSE_TASKS_SHARED_API CalendarCacheKey();
428 #ifdef ASPOSE_GET_SHARED_MEMBERS
429 ASPOSE_TASKS_SHARED_API
void GetSharedMembers(System::Object::shared_members_type& result)
const override;
437 System::DateTime start;
438 System::DateTime finish;
439 int32_t cachedHashCode;
449 ASPOSE_TASKS_SHARED_API System::String get_Name()
const;
453 ASPOSE_TASKS_SHARED_API
void set_Name(
const System::String& value);
457 ASPOSE_TASKS_SHARED_API int32_t get_Uid()
const;
461 ASPOSE_TASKS_SHARED_API
void set_Uid(int32_t value);
466 ASPOSE_TASKS_SHARED_API
const System::SharedPtr<WeekDayCollection>& get_WeekDays()
const;
471 ASPOSE_TASKS_SHARED_API System::SharedPtr<CalendarExceptionCollection> get_Exceptions()
const;
476 ASPOSE_TASKS_SHARED_API
const System::SharedPtr<WorkWeekCollection>& get_WorkWeeks()
const;
480 ASPOSE_TASKS_SHARED_API
bool get_IsBaseCalendar();
485 ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> get_BaseCalendar()
const;
490 ASPOSE_TASKS_SHARED_API
void set_BaseCalendar(
const System::SharedPtr<Calendar>& value);
494 ASPOSE_TASKS_SHARED_API
bool get_IsBaselineCalendar();
498 ASPOSE_TASKS_SHARED_API
void set_IsBaselineCalendar(
bool value);
502 ASPOSE_TASKS_SHARED_API System::String get_Guid()
const;
511 static ASPOSE_TASKS_SHARED_API System::SharedPtr<ICalendar> GetIntersectionCalendar(
const System::SharedPtr<Calendar>& calendar1,
const System::SharedPtr<Calendar>& calendar2);
517 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> MakeStandardCalendar(
const System::SharedPtr<Calendar>& calendar);
524 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> Make24HourCalendar(
const System::SharedPtr<Calendar>& calendar);
530 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> MakeNightShiftCalendar(
const System::SharedPtr<Calendar>& calendar);
536 ASPOSE_TASKS_SHARED_API
bool Equals(System::SharedPtr<System::Object> obj)
override;
541 ASPOSE_TASKS_SHARED_API int32_t GetHashCode()
const override;
545 ASPOSE_TASKS_SHARED_API
void Delete();
552 ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateFromFinishAndDuration(System::DateTime finish,
Duration duration)
override;
559 ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateFromFinishAndDuration(System::DateTime finish, System::TimeSpan duration)
override;
565 ASPOSE_TASKS_SHARED_API
bool IsDayWorking(System::DateTime dt)
override;
572 ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkUnit> GetWorkingHours(System::DateTime start, System::DateTime finish)
override;
578 ASPOSE_TASKS_SHARED_API System::TimeSpan GetWorkingHours(System::DateTime dt)
override;
585 ASPOSE_TASKS_SHARED_API System::TimeSpan GetWorkingHoursTimeSpan(System::DateTime start, System::DateTime finish)
override;
592 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateByStartAndWork(System::DateTime start,
Duration work)
override;
599 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateByStartAndWork(System::DateTime start, System::TimeSpan work)
override;
607 ASPOSE_TASKS_SHARED_API System::DateTime GetTaskFinishDateFromDuration(System::SharedPtr<Task> task, System::TimeSpan duration)
override;
613 ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkingTimeCollection> GetWorkingTimes(System::DateTime dt)
override;
619 ASPOSE_TASKS_SHARED_API System::DateTime GetPreviousWorkingDayEnd(System::DateTime date)
override;
625 ASPOSE_TASKS_SHARED_API System::DateTime GetNextWorkingDayStart(System::DateTime date)
override;
631 ASPOSE_TASKS_SHARED_API System::DateTime GetWorkStart(System::DateTime date)
override;
635 ASPOSE_TASKS_SHARED_API
bool IsEmpty()
override;
643 ASPOSE_TASKS_SHARED_API
void set_WeekDays(
const System::SharedPtr<WeekDayCollection>& value);
647 ASPOSE_TASKS_SHARED_API
void set_Guid(
const System::String& value);
648 ASPOSE_TASKS_SHARED_API
const System::SharedPtr<Project>& get_ParentProject()
const;
649 ASPOSE_TASKS_SHARED_API
void set_ParentProject(
const System::SharedPtr<Project>& value);
650 ASPOSE_TASKS_SHARED_API
NullableBool get_NullableIsBaselineCalendar()
const;
651 ASPOSE_TASKS_SHARED_API
void set_NullableIsBaselineCalendar(
NullableBool value);
652 ASPOSE_TASKS_SHARED_API int32_t get_ResourceUid()
const;
653 ASPOSE_TASKS_SHARED_API
void set_ResourceUid(int32_t value);
654 ASPOSE_TASKS_SHARED_API
bool get_IsNull()
const;
655 ASPOSE_TASKS_SHARED_API
void set_IsNull(
bool value);
656 ASPOSE_TASKS_SHARED_API
bool get_IsZeroResourceCalendar();
657 ASPOSE_TASKS_SHARED_API System::Guid get_UnknownGuid()
const;
658 ASPOSE_TASKS_SHARED_API
void set_UnknownGuid(System::Guid value);
659 ASPOSE_TASKS_SHARED_API System::SharedPtr<Aspose::Tasks::Resource> get_Resource()
const;
660 ASPOSE_TASKS_SHARED_API
void set_Resource(
const System::SharedPtr<Aspose::Tasks::Resource>& value);
661 ASPOSE_TASKS_SHARED_API
bool get_Is24HourCalendar();
662 ASPOSE_TASKS_SHARED_API
bool get_IsCacheEnabled();
663 ASPOSE_TASKS_SHARED_API
void set_IsCacheEnabled(
bool value);
667 virtual ASPOSE_TASKS_SHARED_API
bool get_IsUniform();
671 virtual ASPOSE_TASKS_SHARED_API
bool get_CanSkipWeeks();
678 ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(
Calendar, CODEPORTING_ARGS());
684 ASPOSE_TASKS_SHARED_API
Calendar(int32_t uid);
686 ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(
Calendar, CODEPORTING_ARGS(int32_t uid));
687 ASPOSE_TASKS_SHARED_API
bool IsDayOff(System::DateTime date);
688 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateByStartAndDuration(System::DateTime start,
Duration duration,
bool isLast,
bool daysOff);
689 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateByStartAndDuration(System::DateTime start, System::TimeSpan duration,
bool isLast,
bool daysOff);
690 ASPOSE_TASKS_SHARED_API System::DateTime GetTaskFinishDateFromDuration(
const System::SharedPtr<Task>& task,
Duration duration);
691 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateFromStartAndDuration(
const System::SharedPtr<Task>& task, System::DateTime start,
Duration duration);
692 ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateFromFinishAndDuration(
const System::SharedPtr<Task>& task, System::DateTime finishDate,
Duration duration);
700 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateFromStartAndDuration(
const System::SharedPtr<Task>& task, System::DateTime start, System::TimeSpan duration);
708 ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateFromFinishAndDuration(
const System::SharedPtr<Task>& task, System::DateTime finishDate, System::TimeSpan duration);
709 ASPOSE_TASKS_SHARED_API System::DateTime GetWorkStartOrDefault(System::DateTime date);
710 ASPOSE_TASKS_SHARED_API System::DateTime GetPrevWorkingTimeEnd(System::DateTime date);
711 ASPOSE_TASKS_SHARED_API
bool IsWorkDayEnd(System::DateTime date);
712 ASPOSE_TASKS_SHARED_API
bool IsWorkingTimeEnd(System::DateTime date);
713 ASPOSE_TASKS_SHARED_API
bool IsWorkDayStart(System::DateTime date);
714 ASPOSE_TASKS_SHARED_API
bool IsNonworkingTime(System::DateTime date);
715 ASPOSE_TASKS_SHARED_API
bool IsWorkingTimeStart(System::DateTime date);
716 ASPOSE_TASKS_SHARED_API System::DateTime GetNextDayStart(System::DateTime date);
717 ASPOSE_TASKS_SHARED_API System::DateTime GetNextDayStart(System::DateTime date, System::TimeSpan nonWorkingDayStart);
718 ASPOSE_TASKS_SHARED_API System::DateTime GetDayStart(System::DateTime date);
719 ASPOSE_TASKS_SHARED_API int32_t GetWorkingDaysCount(System::DateTime start, System::DateTime end);
723 ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkingTimeCollection> GetWorkingTimesAtDate(System::DateTime date);
724 ASPOSE_TASKS_SHARED_API
void StartExceptionsCaching();
725 ASPOSE_TASKS_SHARED_API
void StopExceptionsCaching();
730 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> MakeStandardCalendarNoWeekend();
731 ASPOSE_TASKS_SHARED_API
void SetWorkingExceptions(
const System::SharedPtr<TimeScaledExceptions>& exceptionCollection);
736 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> Get24HoursCalendarInternal();
737 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> WrapCalendar(
const System::SharedPtr<Calendar>& calendar,
const System::SharedPtr<TimeScaledExceptions>& workingExceptions);
742 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> MakeStandardCalendarInternal();
743 ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkingTimeCollection> GetWorkingTimesIgnoreTimescaledExceptions(System::DateTime dt, DayType dayType);
744 virtual ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkingTimeCollection> GetWorkingTimesIgnoreExceptions(DayType dayType);
745 ASPOSE_TASKS_SHARED_API System::SharedPtr<CalendarException> CheckException(System::DateTime dt,
bool checkImplicit =
true);
746 ASPOSE_TASKS_SHARED_API System::SharedPtr<IReadOnlyWorkingTimeCollection> GetScheduleForImplicitException();
747 virtual ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkingTimeCollection> CalculateWorkingTimes(System::DateTime dt);
749 virtual ASPOSE_TASKS_SHARED_API ~
Calendar();
751 #ifdef ASPOSE_GET_SHARED_MEMBERS
752 ASPOSE_TASKS_SHARED_API
void GetSharedMembers(System::Object::shared_members_type& result)
const override;
758 System::SharedPtr<CalendarDatesCalculator> calculator;
759 System::SharedPtr<CalendarExceptionCollectionWithCache> exceptions;
760 System::SharedPtr<TimeScaledExceptions> workingExceptions;
762 System::WeakPtr<Aspose::Tasks::Resource> resource;
763 System::Nullable<bool> is24HourCal;
764 System::SharedPtr<Calendar> baseCalendar;
766 int32_t isCacheEnabledNesting;
767 System::SharedPtr<IKeyValueCache<System::DateTime, System::SharedPtr<WorkingTimeCollection>>> calculationsCache;
769 static System::SharedPtr<Calendar>& calendar24Hours();
771 System::String pr_Name;
773 System::SharedPtr<WeekDayCollection> pr_WeekDays;
774 System::SharedPtr<WorkWeekCollection> pr_WorkWeeks;
780 ASPOSE_TASKS_SHARED_API
void set_WorkWeeks(
const System::SharedPtr<WorkWeekCollection>& value);
782 System::WeakPtr<Project> pr_ParentProject;
783 int32_t pr_ResourceUid;
785 System::Guid pr_UnknownGuid;
787 System::String get_DebuggerDisplay();
789 void TryToSkipByWeek(System::DateTime& enumeratorStartDate, int64_t& totalSpan, System::DateTime finish);
790 System::TimeSpan GetWorkingHoursInDay(System::DateTime start, System::DateTime finish);
791 System::SharedPtr<Calendar> ShallowClone();
792 void InitScheduleForTimescaledException(
const System::SharedPtr<CalendarException>& exception, System::DateTime dt);
793 static void Make24HourWeek(
const System::SharedPtr<Calendar>& calendar);
794 System::TimeSpan GetWeekTotalWork();
795 bool CheckWeekHasNoExceptions(System::DateTime start, System::DateTime finish);
796 static void MakeNightShiftWeek(
const System::SharedPtr<Calendar>& calendar);
797 System::SharedPtr<WorkingTimeCollection> GetWorkingTimesForCalendarException(
const System::SharedPtr<CalendarException>& calendarException, System::DateTime dt);
798 System::SharedPtr<WeekDay> GetWeekDay(System::DateTime dt);
799 System::SharedPtr<WeekDay> CheckWeekDay(DayType dayType);
800 System::SharedPtr<WeekDay> CheckDateInWorkWeeks(System::DateTime dt);
804 ASPOSE_TASKS_SHARED_API
bool operator ==(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
805 ASPOSE_TASKS_SHARED_API
bool operator !=(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);