Adding and Removing Calendar Exceptions
Contents
[
Hide
Show
]Working with Calendar Exceptions
Aspose.Tasks for C++ API helps you manage calendar exceptions. Die Ausnahmen Eigenschaft, die von der Kalenderklasse ausgesetzt ist, die eine Liste von Kalenderception Objekten darstellt und zum Hinzufügen oder Entfernen der Kalenderausnahmen verwendet wird.
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}