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/aspose_tasks_api_defs.h"
22 class AssignmentBaseline;
23 class AutoRecalculationState;
24 namespace Calculations
26 class ResourceAssignmentCalculator;
27 class ResourceAssignmentPeakCalculator;
28 class ResourceAssignmentRateByDateEnumerator;
29 class ResourceAssignmentVarianceCalculator;
30 class ResourceAssignmentWorkCalculator;
31 class ResourceCalculator;
32 class ResourceOverAllocationCalculator;
33 class SummaryTaskCalculator;
34 class TaskByAssignmentCalculator;
35 class TaskProgressCalculator;
36 class TaskSlackCalculator;
37 class TaskStatusCalculator;
38 class TaskVarianceCalculator;
39 class TimephasedDataCalculator;
40 class TimeScaledCalculator;
42 class CalendarCollection;
43 class CalendarDatesCalculator;
44 class CalendarException;
45 class CalendarExceptionCollection;
46 class CalendarExceptionCollectionWithCache;
47 class CalendarTDMaker;
48 namespace Connectivity
50 class MpdCalendarMapper;
51 class MspCalendarMapper;
53 class PmCalendarMapper;
54 class PrimaveraDbReader;
56 class DailyCalendarRepetition;
57 class DailyWorkRepetition;
58 class DatesCalculator;
64 class CalendarRootFilter;
66 class FixedDurationEffortDrivenTaskPlanner;
67 template <
typename,
typename>
class IKeyValueCache;
72 class HtmlCalendarTableReader;
80 class Mpp12CalendarReader;
81 class Mpp12CalendarWriter;
83 class Mpp14CalendarReader;
84 class Mpp14CalendarWriter;
86 class MPP14ResourceWriter;
87 class Mpp15CalendarReader;
88 class Mpp15CalendarWriter;
89 class Mpp9CalendarReader;
90 class Mpp9CalendarWriter;
92 class MppCalendarReader;
93 class MPPProjectPropsReader;
94 class MPPProjectPropsWriter;
96 class MPPResourceReader;
98 class MPPTimephasedDataReader;
99 class MppTimephasedDataWriter;
100 class MppWeekDayReader;
102 namespace PrimaveraXml
105 class PrimaveraCalendarNodeReader;
106 class PrimaveraReader;
107 class PrimaveraResourceNodeReader;
111 namespace InternalApi
113 class InternalApiProjectSerializer;
116 class CalendarToRawValuesMapper;
117 class ProjectCalendarsMapper;
118 class ProjectRootMapper;
124 class XerAssignmentReader;
125 class XerCalendarReader;
126 class XerPrimaveraReader;
127 class XerProjectNormalizer;
131 class CalendarFactory;
132 class CalendarNodeReader;
133 class CalendarNodeWriter;
134 class ResourceNodeReader;
135 class TaskNodeReader;
136 class TimephasedDataNodeReader;
137 class WeekDayNodeReader;
142 class IReadOnlyWorkingTimeCollection;
145 class LevelingAlgorithm;
148 class MonthlyRepetitionBase;
150 class PercentCompleteCalculator;
154 class ProjectIntegrityValidator;
156 class ProjectWorkUpdater;
157 namespace Recalculation
159 class TaskSplitCalculator;
160 class TimephasedDataCalculationUtil;
164 namespace Calculators
166 class CalendarDayRecurrenceDateCalculator;
167 class DefaultRecurrenceDateCalculator;
168 class RecurrenceDateCalculatorBase;
172 class ResourceAssignment;
175 class HtmlCalendarTable;
177 class PrimaveraCalendarNodeWriter;
178 class XerCalendarTable;
182 class ConstraintSolver;
183 class FromStartScheduler;
184 class TopsortCriticalPath;
187 class SplitsCalculator;
191 class TaskPlannerAssignmentManager;
192 class TaskWarningCalculator;
195 class TimephasedDataByScaledEnumerator;
196 class TimeScaledWorkContourBuilder;
198 class TimephasedDataMaker;
199 class TimephasedWorkCostSelector;
200 class TimeScaledExceptions;
201 class TimeScaledParentWorkUnit;
204 class CalendarHelper;
205 class PrimaveraSummaryTasksCalculator;
206 class PrimaveraTasksProcessor;
210 class RecurringTaskParametersValidator;
213 class WeekDayCollection;
214 class WeeklyRepetitionBase;
215 class WorkingTimeCollection;
217 class WorkWeekCollection;
218 class YearlyRepetitionBase;
293 class ASPOSE_TASKS_SHARED_CLASS
Calendar :
public System::Object
296 typedef System::Object BaseType;
298 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
299 ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
303 class CalendarCacheKey;
307 friend class Aspose::Tasks::Calculations::ResourceOverAllocationCalculator;
308 friend class Aspose::Tasks::Calculations::TimeScaledCalculator;
309 friend class Aspose::Tasks::Calculations::ResourceAssignmentRateByDateEnumerator;
310 friend class Aspose::Tasks::Calculations::ResourceAssignmentCalculator;
311 friend class Aspose::Tasks::Calculations::ResourceAssignmentPeakCalculator;
312 friend class Aspose::Tasks::Calculations::ResourceAssignmentWorkCalculator;
313 friend class Aspose::Tasks::Calculations::ResourceCalculator;
314 friend class Aspose::Tasks::Calculations::SummaryTaskCalculator;
315 friend class Aspose::Tasks::Calculations::TaskByAssignmentCalculator;
316 friend class Aspose::Tasks::Calculations::TaskProgressCalculator;
317 friend class Aspose::Tasks::Calculations::ResourceAssignmentVarianceCalculator;
318 friend class Aspose::Tasks::Calculations::TaskSlackCalculator;
319 friend class Aspose::Tasks::Calculations::TaskVarianceCalculator;
320 friend class Aspose::Tasks::Calculations::TaskStatusCalculator;
321 friend class Aspose::Tasks::Calculations::TimephasedDataCalculator;
322 friend class Aspose::Tasks::Calculations::TimephasedDataCalculator;
324 friend class Aspose::Tasks::IO::PrimaveraXml::P6XmlUtils;
325 friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraCalendarNodeReader;
326 friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraReader;
327 friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraResourceNodeReader;
328 friend class Aspose::Tasks::Leveling::LevelingAlgorithm;
332 friend class Aspose::Tasks::Timephased::TimeScaledWorkContourBuilder;
333 friend class Aspose::Tasks::Timephased::TimephasedDataByScaledEnumerator;
334 friend class Aspose::Tasks::Recalculation::TimephasedDataCalculationUtil;
335 friend class Aspose::Tasks::TimeScaledParentWorkUnit;
336 friend class Aspose::Tasks::Util::PrimaveraSummaryTasksCalculator;
337 friend class Aspose::Tasks::Filters::CalendarRootFilter;
338 friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::CalendarToRawValuesMapper;
339 friend class Aspose::Tasks::IO::Pwa::InternalApi::InternalApiProjectSerializer;
340 friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectRootMapper;
341 friend class Aspose::Tasks::IO::Xml::CalendarFactory;
342 friend class Aspose::Tasks::EVCalculator;
343 friend class Aspose::Tasks::ProjDateDiff;
344 friend class Aspose::Tasks::ProjDateSub;
345 friend class Aspose::Tasks::Connectivity::MpdCalendarMapper;
346 friend class Aspose::Tasks::Connectivity::MspCalendarMapper;
347 friend class Aspose::Tasks::Connectivity::MspDbUtils;
348 friend class Aspose::Tasks::Connectivity::PmCalendarMapper;
349 friend class Aspose::Tasks::Connectivity::PrimaveraDbReader;
350 friend class Aspose::Tasks::IO::Html::HtmlCalendarTableReader;
351 friend class Aspose::Tasks::IO::MSProject::Mpp12CalendarReader;
352 friend class Aspose::Tasks::IO::MSProject::MppCalendarReader;
353 friend class Aspose::Tasks::IO::MSProject::MPP12Reader;
354 friend class Aspose::Tasks::IO::MSProject::MPPReader;
355 friend class Aspose::Tasks::IO::MSProject::MPPResourceReader;
356 friend class Aspose::Tasks::IO::MSProject::MppWeekDayReader;
357 friend class Aspose::Tasks::IO::MSProject::Mpp14CalendarReader;
358 friend class Aspose::Tasks::IO::MSProject::MPP14Reader;
359 friend class Aspose::Tasks::IO::MSProject::Mpp15CalendarReader;
360 friend class Aspose::Tasks::IO::MSProject::Mpp15CalendarWriter;
361 friend class Aspose::Tasks::IO::MSProject::Mpp14CalendarWriter;
362 friend class Aspose::Tasks::IO::MSProject::MPP14ResourceWriter;
363 friend class Aspose::Tasks::IO::MSProject::Mpp9CalendarReader;
364 friend class Aspose::Tasks::IO::MSProject::MPP9Reader;
365 friend class Aspose::Tasks::IO::MSProject::MPPProjectPropsReader;
366 friend class Aspose::Tasks::IO::MSProject::MPPTimephasedDataReader;
367 friend class Aspose::Tasks::IO::MSProject::Mpp12CalendarWriter;
368 friend class Aspose::Tasks::IO::MSProject::MPPTaskWriter;
369 friend class Aspose::Tasks::IO::MSProject::Mpp9CalendarWriter;
370 friend class Aspose::Tasks::IO::MSProject::MPPProjectPropsWriter;
371 friend class Aspose::Tasks::IO::MSProject::MppTimephasedDataWriter;
372 friend class Aspose::Tasks::IO::Mpx::MpxReader;
373 friend class Aspose::Tasks::IO::Xer::XerPrimaveraReader;
374 friend class Aspose::Tasks::IO::Xer::XerAssignmentReader;
375 friend class Aspose::Tasks::IO::Xer::XerCalendarReader;
376 friend class Aspose::Tasks::IO::Xer::XerProjectNormalizer;
377 friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectCalendarsMapper;
378 friend class Aspose::Tasks::IO::Xml::CalendarNodeReader;
379 friend class Aspose::Tasks::IO::Xml::CalendarNodeWriter;
380 friend class Aspose::Tasks::IO::Xml::ResourceNodeReader;
381 friend class Aspose::Tasks::IO::Xml::TaskNodeReader;
382 friend class Aspose::Tasks::IO::Xml::TimephasedDataNodeReader;
383 friend class Aspose::Tasks::IO::Xml::WeekDayNodeReader;
384 friend class Aspose::Tasks::IO::Xml::XmlReader;
385 friend class Aspose::Tasks::IO::Xml::XmlWriter;
386 friend class Aspose::Tasks::ProjectIntegrityValidator;
387 friend class Aspose::Tasks::AutoRecalculationState;
388 friend class Aspose::Tasks::ProjectState;
389 friend class Aspose::Tasks::CalendarDatesCalculator;
390 friend class Aspose::Tasks::DatesCalculator;
391 friend class Aspose::Tasks::TaskPlannerAssignmentManager;
392 friend class Aspose::Tasks::FixedDurationEffortDrivenTaskPlanner;
393 friend class Aspose::Tasks::TaskPlanner;
394 friend class Aspose::Tasks::ManualState;
395 friend class Aspose::Tasks::PercentCompleteCalculator;
396 friend class Aspose::Tasks::ProjectWorkUpdater;
397 friend class Aspose::Tasks::SplitsCalculator;
398 friend class Aspose::Tasks::Recalculation::TaskSplitCalculator;
399 friend class Aspose::Tasks::TaskWarningCalculator;
400 friend class Aspose::Tasks::Recurring::Calculators::CalendarDayRecurrenceDateCalculator;
401 friend class Aspose::Tasks::Recurring::Calculators::RecurrenceDateCalculatorBase;
404 friend class Aspose::Tasks::Recurring::Calculators::DefaultRecurrenceDateCalculator;
408 friend class Aspose::Tasks::Saving::HtmlCalendarTable;
409 friend class Aspose::Tasks::Saving::MpxWriter;
410 friend class Aspose::Tasks::Saving::XerCalendarTable;
411 friend class Aspose::Tasks::Saving::PrimaveraCalendarNodeWriter;
412 friend class Aspose::Tasks::Scheduling::ConstraintSolver;
413 friend class Aspose::Tasks::Scheduling::TopsortCriticalPath;
414 friend class Aspose::Tasks::Scheduling::FromStartScheduler;
417 friend class Aspose::Tasks::CalendarTDMaker;
418 friend class Aspose::Tasks::TimephasedDataMaker;
419 friend class Aspose::Tasks::TimephasedWorkCostSelector;
420 friend class Aspose::Tasks::Util::CalendarHelper;
421 friend class Aspose::Tasks::Util::PrimaveraTasksProcessor;
422 friend class Aspose::Tasks::Validators::RecurringTaskParametersValidator;
423 friend ASPOSE_TASKS_SHARED_API
bool operator ==(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
424 friend ASPOSE_TASKS_SHARED_API
bool operator !=(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
428 class ASPOSE_TASKS_SHARED_CLASS CalendarCacheKey :
public System::IEquatable<Aspose::Tasks::Calendar::CalendarCacheKey>,
public System::Details::BoxableObjectBase
431 typedef System::IEquatable<Aspose::Tasks::Calendar::CalendarCacheKey> BaseType;
433 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
434 ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
436 friend ASPOSE_TASKS_SHARED_API
bool operator ==(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
437 friend ASPOSE_TASKS_SHARED_API
bool operator !=(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
441 ASPOSE_TASKS_SHARED_API CalendarCacheKey(int32_t calUid, System::DateTime start, System::DateTime finish,
double units);
444 ASPOSE_TASKS_SHARED_API
bool Equals(Calendar::CalendarCacheKey other)
override;
446 ASPOSE_TASKS_SHARED_API
bool Equals(System::SharedPtr<System::Object> obj)
override;
448 ASPOSE_TASKS_SHARED_API int32_t GetHashCode()
const override;
450 ASPOSE_TASKS_SHARED_API CalendarCacheKey();
454 #ifdef ASPOSE_GET_SHARED_MEMBERS
455 ASPOSE_TASKS_SHARED_API
void GetSharedMembers(System::Object::shared_members_type& result)
const override;
463 System::DateTime start;
464 System::DateTime finish;
465 int32_t cachedHashCode;
475 ASPOSE_TASKS_SHARED_API System::String
get_Name()
const;
479 ASPOSE_TASKS_SHARED_API
void set_Name(
const System::String& value);
483 ASPOSE_TASKS_SHARED_API int32_t
get_Uid()
const;
487 ASPOSE_TASKS_SHARED_API
void set_Uid(int32_t value);
492 ASPOSE_TASKS_SHARED_API
const System::SharedPtr<WeekDayCollection>&
get_WeekDays()
const;
497 ASPOSE_TASKS_SHARED_API System::SharedPtr<CalendarExceptionCollection>
get_Exceptions()
const;
502 ASPOSE_TASKS_SHARED_API
const System::SharedPtr<WorkWeekCollection>&
get_WorkWeeks()
const;
528 ASPOSE_TASKS_SHARED_API System::String
get_Guid()
const;
535 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar>
MakeStandardCalendar(
const System::SharedPtr<Calendar>& calendar);
542 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar>
Make24HourCalendar(
const System::SharedPtr<Calendar>& calendar);
548 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar>
MakeNightShiftCalendar(
const System::SharedPtr<Calendar>& calendar);
554 ASPOSE_TASKS_SHARED_API
bool Equals(System::SharedPtr<System::Object> obj)
override;
590 ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkUnit>
GetWorkingHours(System::DateTime start, System::DateTime finish);
624 ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkingTimeCollection>
GetWorkingTimes(System::DateTime dt);
644 ASPOSE_TASKS_SHARED_API
void set_WeekDays(
const System::SharedPtr<WeekDayCollection>& value);
648 ASPOSE_TASKS_SHARED_API
void set_Guid(
const System::String& value);
649 ASPOSE_TASKS_SHARED_API
const System::SharedPtr<Project>& get_ParentProject()
const;
650 ASPOSE_TASKS_SHARED_API
void set_ParentProject(
const System::SharedPtr<Project>& value);
651 ASPOSE_TASKS_SHARED_API
NullableBool get_NullableIsBaselineCalendar()
const;
652 ASPOSE_TASKS_SHARED_API
void set_NullableIsBaselineCalendar(
NullableBool value);
653 ASPOSE_TASKS_SHARED_API int32_t get_ResourceUid()
const;
654 ASPOSE_TASKS_SHARED_API
void set_ResourceUid(int32_t value);
655 ASPOSE_TASKS_SHARED_API
bool get_IsNull()
const;
656 ASPOSE_TASKS_SHARED_API
void set_IsNull(
bool value);
657 ASPOSE_TASKS_SHARED_API
bool get_IsZeroResourceCalendar();
658 ASPOSE_TASKS_SHARED_API System::Guid get_UnknownGuid()
const;
659 ASPOSE_TASKS_SHARED_API
void set_UnknownGuid(System::Guid value);
660 ASPOSE_TASKS_SHARED_API System::SharedPtr<Aspose::Tasks::Resource> get_Resource()
const;
661 ASPOSE_TASKS_SHARED_API
void set_Resource(
const System::SharedPtr<Aspose::Tasks::Resource>& value);
662 ASPOSE_TASKS_SHARED_API
bool get_Is24HourCalendar();
663 ASPOSE_TASKS_SHARED_API int32_t get_NonWorkingDayCount();
664 ASPOSE_TASKS_SHARED_API int32_t get_WorkingDayCount();
665 ASPOSE_TASKS_SHARED_API
bool get_IsCacheEnabled();
666 ASPOSE_TASKS_SHARED_API
void set_IsCacheEnabled(
bool value);
673 ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(
Calendar, CODEPORTING_ARGS());
679 ASPOSE_TASKS_SHARED_API
Calendar(int32_t uid);
681 ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(
Calendar, CODEPORTING_ARGS(int32_t uid));
682 ASPOSE_TASKS_SHARED_API System::TimeSpan GetWorkingHoursTimeSpan(System::DateTime start, System::DateTime finish);
683 ASPOSE_TASKS_SHARED_API
bool IsDayOff(System::DateTime date);
684 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateByStartAndDuration(System::DateTime start,
Duration duration,
bool isLast,
bool daysOff);
685 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateByStartAndDuration(System::DateTime start, System::TimeSpan duration,
bool isLast,
bool daysOff);
686 ASPOSE_TASKS_SHARED_API System::DateTime GetTaskFinishDateFromDuration(
const System::SharedPtr<Task>& task,
Duration duration);
687 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateFromStartAndDuration(
const System::SharedPtr<Task>& task, System::DateTime start,
Duration duration);
688 ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateFromFinishAndDuration(
const System::SharedPtr<Task>& task, System::DateTime finishDate,
Duration duration);
696 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateFromStartAndDuration(
const System::SharedPtr<Task>& task, System::DateTime start, System::TimeSpan duration);
704 ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateFromFinishAndDuration(
const System::SharedPtr<Task>& task, System::DateTime finishDate, System::TimeSpan duration);
705 ASPOSE_TASKS_SHARED_API System::TimeSpan GetWork(System::DateTime start, System::DateTime end,
const System::SharedPtr<Calendar>& anotherCalendar);
706 ASPOSE_TASKS_SHARED_API System::TimeSpan GetWork(System::DateTime start, System::DateTime end, System::SharedPtr<Calendar> anotherCalendar,
bool trimSeconds);
712 ASPOSE_TASKS_SHARED_API System::DateTime GetWorkStart(System::DateTime date);
713 ASPOSE_TASKS_SHARED_API System::DateTime GetWorkStartOrDefault(System::DateTime date);
714 ASPOSE_TASKS_SHARED_API System::DateTime GetWorkStart(System::DateTime date,
const System::SharedPtr<Calendar>& anotherCalendar);
715 ASPOSE_TASKS_SHARED_API System::DateTime GetPrevWorkingTimeEnd(System::DateTime date);
716 ASPOSE_TASKS_SHARED_API
bool IsEmpty();
717 ASPOSE_TASKS_SHARED_API
bool IsWorkDayEnd(System::DateTime date);
718 ASPOSE_TASKS_SHARED_API
bool IsWorkingTimeEnd(System::DateTime date);
719 ASPOSE_TASKS_SHARED_API
bool IsWorkDayStart(System::DateTime date);
720 ASPOSE_TASKS_SHARED_API
bool IsNonworkingTime(System::DateTime date);
721 ASPOSE_TASKS_SHARED_API
bool IsWorkingTimeStart(System::DateTime date);
722 ASPOSE_TASKS_SHARED_API System::DateTime GetNextDayStart(System::DateTime date);
723 ASPOSE_TASKS_SHARED_API System::DateTime GetNextDayStart(System::DateTime date, System::TimeSpan nonWorkingDayStart);
724 ASPOSE_TASKS_SHARED_API System::DateTime GetDayStart(System::DateTime date);
725 ASPOSE_TASKS_SHARED_API int32_t GetWorkingDaysCount(System::DateTime start, System::DateTime end);
733 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateByStartAndWork(System::DateTime start, System::TimeSpan work,
const System::SharedPtr<Calendar>& anotherCalendar);
734 ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateByFinishAndWork(System::DateTime finish,
Duration work,
const System::SharedPtr<Calendar>& anotherCalendar);
742 ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateByFinishAndWork(System::DateTime finish, System::TimeSpan work,
const System::SharedPtr<Calendar>& anotherCalendar);
749 ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateByFinishAndWork(System::DateTime finish, System::TimeSpan work);
753 ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkingTimeCollection> GetWorkingTimesAtDate(System::DateTime date);
754 ASPOSE_TASKS_SHARED_API
void StartExceptionsCaching();
755 ASPOSE_TASKS_SHARED_API
void StopExceptionsCaching();
760 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> MakeStandardCalendarNoWeekend();
761 ASPOSE_TASKS_SHARED_API
void SetWorkingExceptions(
const System::SharedPtr<TimeScaledExceptions>& exceptionCollection);
766 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> Get24HoursCalendarInternal();
767 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> WrapCalendar(
const System::SharedPtr<Calendar>& calendar,
const System::SharedPtr<TimeScaledExceptions>& workingExceptions);
772 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> MakeStandardCalendarInternal();
773 ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkingTimeCollection> GetWorkingTimesIgnoreExceptions(DayType dayType);
774 ASPOSE_TASKS_SHARED_API System::SharedPtr<CalendarException> CheckException(System::DateTime dt);
775 ASPOSE_TASKS_SHARED_API System::SharedPtr<IReadOnlyWorkingTimeCollection> GetScheduleForImplicitException();
777 virtual ASPOSE_TASKS_SHARED_API ~
Calendar();
779 #ifdef ASPOSE_GET_SHARED_MEMBERS
780 ASPOSE_TASKS_SHARED_API
void GetSharedMembers(System::Object::shared_members_type& result)
const override;
786 System::SharedPtr<CalendarDatesCalculator> calculator;
787 System::SharedPtr<CalendarExceptionCollectionWithCache> exceptions;
788 System::SharedPtr<TimeScaledExceptions> workingExceptions;
790 System::WeakPtr<Aspose::Tasks::Resource> resource;
791 System::Nullable<bool> is24HourCal;
792 System::SharedPtr<Calendar> baseCalendar;
794 int32_t isCacheEnabledNesting;
795 System::SharedPtr<IKeyValueCache<System::DateTime, System::SharedPtr<WorkingTimeCollection>>> calculationsCache;
797 static System::SharedPtr<Calendar>& calendar24Hours();
799 System::String pr_Name;
801 System::SharedPtr<WeekDayCollection> pr_WeekDays;
802 System::SharedPtr<WorkWeekCollection> pr_WorkWeeks;
808 ASPOSE_TASKS_SHARED_API
void set_WorkWeeks(
const System::SharedPtr<WorkWeekCollection>& value);
810 System::WeakPtr<Project> pr_ParentProject;
811 int32_t pr_ResourceUid;
813 System::Guid pr_UnknownGuid;
815 System::String get_DebuggerDisplay();
819 bool get_IsUniform();
821 void TryToSkipByWeek(System::DateTime& enumeratorStartDate, int64_t& totalSpan, System::DateTime finish);
822 System::TimeSpan GetWorkingHoursInDay(System::DateTime start, System::DateTime finish);
823 static void Make24HourWeek(
const System::SharedPtr<Calendar>& calendar);
824 System::TimeSpan GetWeekTotalWork();
825 bool CheckWeekHasNoExceptions(System::DateTime start, System::DateTime finish);
826 static void MakeNightShiftWeek(
const System::SharedPtr<Calendar>& calendar);
827 System::SharedPtr<WorkingTimeCollection> CalculateWorkingTimes(System::DateTime dt);
828 System::SharedPtr<WorkingTimeCollection> GetWorkingTimesForCalendarException(
const System::SharedPtr<CalendarException>& calendarException);
829 System::SharedPtr<WeekDay> GetWeekDay(System::DateTime dt);
830 System::SharedPtr<WeekDay> CheckWeekDay(DayType dayType);
831 System::SharedPtr<WeekDay> CheckDateInWorkWeeks(System::DateTime dt);
835 ASPOSE_TASKS_SHARED_API
bool operator ==(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
836 ASPOSE_TASKS_SHARED_API
bool operator !=(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
Represents Baseline of a resource assignment.
Definition: AssignmentBaseline.h:84
Represents a collection of Calendar objects.
Definition: CalendarCollection.h:98
Represents a calendar used in a project.
Definition: Calendar.h:294
void Delete()
Removes calendar from project.
int32_t GetHashCode() const override
Returns a hash code for the instance of the class.
void set_IsBaselineCalendar(bool value)
Sets a value indicating whether the calendar is a baseline calendar.
System::String get_Name() const
Gets the name of the calendar.
static System::SharedPtr< Calendar > MakeStandardCalendar(const System::SharedPtr< Calendar > &calendar)
Creates default standard calendar.
System::DateTime GetStartDateFromFinishAndDuration(System::DateTime finish, Duration duration)
Returns StartDate based on specified FinishDate and Duration.
System::DateTime GetFinishDateByStartAndWork(System::DateTime start, System::TimeSpan work)
Calculates the date when the specified amount of work time will pass according to the calendar.
void set_BaseCalendar(const System::SharedPtr< Calendar > &value)
Sets the base calendar on which this calendar depends. Only applicable if the calendar is not a base ...
System::SharedPtr< CalendarExceptionCollection > get_Exceptions() const
Gets CalendarExceptionCollection object. The collection of exceptions that is associated with the cal...
System::SharedPtr< WorkingTimeCollection > GetWorkingTimes(System::DateTime dt)
Returns WorkingTimeCollection of working times for the specified date.
const System::SharedPtr< WorkWeekCollection > & get_WorkWeeks() const
Gets WorkWeekCollections object. The collection of work weeks that is associated with the calendar.
const System::SharedPtr< WeekDayCollection > & get_WeekDays() const
Gets WeekDaysCollection for this calendar. The collection of weekdays that defines the calendar.
System::DateTime GetTaskFinishDateFromDuration(const System::SharedPtr< Task > &task, System::TimeSpan duration)
Calculates the task finish date and time from its start date, split parts and the duration.
static System::SharedPtr< Calendar > MakeNightShiftCalendar(const System::SharedPtr< Calendar > &calendar)
Makes a given Calendar as Night Shift Calendar.
bool IsDayWorking(System::DateTime dt)
Determines whether the day is working day.
System::String get_Guid() const
Gets calendar's Guid.
bool get_IsBaselineCalendar()
Gets a value indicating whether the calendar is a baseline calendar.
static System::SharedPtr< Calendar > Make24HourCalendar(const System::SharedPtr< Calendar > &calendar)
Makes a given Calendar to be a 24Hour Calendar. 24Hours Calendar is a Calendar in which every day of ...
void set_Name(const System::String &value)
Sets the name of the calendar.
int32_t get_Uid() const
Gets the unique identifier of the calendar.
System::SharedPtr< WorkUnit > GetWorkingHours(System::DateTime start, System::DateTime finish)
Return working hours for the specified dates.
System::DateTime GetStartDateFromFinishAndDuration(System::DateTime finish, System::TimeSpan duration)
Returns StartDate based on specified FinishDate and Duration.
System::DateTime GetPreviousWorkingDayEnd(System::DateTime date)
Calculates previous working date end from the specified date.
bool get_IsBaseCalendar()
Gets a value indicating whether the calendar is a base calendar.
System::DateTime GetFinishDateByStartAndWork(System::DateTime start, Duration work)
Calculates the date when the specified amount of work time will pass according to the calendar.
void set_Uid(int32_t value)
Sets the unique identifier of the calendar.
System::TimeSpan GetWorkingHours(System::DateTime dt)
Returns amount of working hours at the date.
System::DateTime GetNextWorkingDayStart(System::DateTime date)
Calculates next working day start from the date.
bool Equals(System::SharedPtr< System::Object > obj) override
Returns a value indicating whether this instance is equal to a specified object.
System::SharedPtr< Calendar > get_BaseCalendar() const
Gets the base calendar on which this calendar depends. Only applicable if the calendar is not a base ...
Represents a class for repetitions in daily recurrence pattern based on calendar days.
Definition: DailyCalendarRepetition.h:36
Represents a class for repetitions in daily recurrence pattern based on work days.
Definition: DailyWorkRepetition.h:36
Represents duration in a project.
Definition: Duration.h:163
Represents a base pattern for monthly day position.
Definition: MonthlyRepetitionBase.h:40
A class for boolean values with possibility to check whether the value was defined or not.
Definition: NullableBool.h:22
Represents a project.
Definition: Project.h:551
Represents a resource assignment in a project.
Definition: ResourceAssignment.h:219
Represents a task portion. The SplitPart is a member of the task's SplitParts collection.
Definition: SplitPart.h:45
Represents Baseline of a Task.
Definition: TaskBaseline.h:53
Represents a task in a project.
Definition: Task.h:383
Represents a base class for repetitions in weekly recurrence pattern.
Definition: WeeklyRepetitionBase.h:40
Represents a base pattern for yearly day position.
Definition: YearlyRepetitionBase.h:38