Adding and Removing Calendar Exceptions
Contents
[
Hide
Show
]Working with Calendar Exceptions
Aspose.Tasks for C++ API helps you manage calendar exceptions. The Exceptions property exposed by the Calendar class that represents a List of CalendarException objects and is used to add or remove the calendar exceptions.
The following code example demonstrates how to add, remove and display exceptions.
1System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
2
3{
4 System::SharedPtr<System::IO::FileStream> fs = System::MakeObject<System::IO::FileStream>(dataDir + u"project_test.mpp", System::IO::FileMode::Open);
5 // Clearing resources under 'using' statement
6 System::Details::DisposeGuard<1> __dispose_guard_0({ fs});
7 // ------------------------------------------
8
9 try
10 {
11 // Create project instance
12 System::SharedPtr<Project> prj = System::MakeObject<Project>(fs);
13
14 // Remove an exception
15 System::SharedPtr<Aspose::Tasks::Calendar> cal = prj->get_Calendars()->ToList()->idx_get(0);
16 if (cal->get_Exceptions()->get_Count() > 1)
17 {
18 System::SharedPtr<CalendarException> exc = cal->get_Exceptions()->ToList()->idx_get(0);
19 cal->get_Exceptions()->Remove(exc);
20 }
21
22 // Add an exception
23 System::SharedPtr<CalendarException> calExc = System::MakeObject<CalendarException>();
24 calExc->set_FromDate(System::DateTime(2009, 1, 1));
25 calExc->set_ToDate(System::DateTime(2009, 1, 3));
26 cal->get_Exceptions()->Add(calExc);
27
28 // Display exceptions
29
30 {
31 auto calExc1_enumerator = (cal->get_Exceptions())->GetEnumerator();
32 decltype(calExc1_enumerator->get_Current()) calExc1;
33 while (calExc1_enumerator->MoveNext() && (calExc1 = calExc1_enumerator->get_Current(), true))
34 {
35 System::Console::WriteLine(System::String(u"From") + calExc1->get_FromDate().ToShortDateString());
36 System::Console::WriteLine(System::String(u"To") + calExc1->get_ToDate().ToShortDateString());
37 }
38 }
39 }
40 catch(...)
41 {
42 __dispose_guard_0.SetCurrentException(std::current_exception());
43 }
44}