Adding and Removing Calendar Exceptions

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}
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.