Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Updated/Added copyright header and licensing to all source files
[xestiacalendar/.git] / source / objects / calendartask / CalendarTask-Save.cpp
index 222e9a4..70fdc19 100644 (file)
@@ -1,3 +1,21 @@
+// CalendarTask-Save.cpp - CalendarTask class save functions
+//
+// (c) 2016-2017 Xestia Software Development.
+//
+// This file is part of Xestia Calendar.
+//
+// Xestia Calendar is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by the
+// Free Software Foundation, version 3 of the license.
+//
+// Xestia Calendar is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with Xestia Calendar. If not, see <http://www.gnu.org/licenses/>
+
 #include "CalendarTask.h"
 
 using namespace std;
@@ -120,6 +138,1519 @@ void CalendarTaskObject::SaveObjectData(string *SaveData){
                DataLineProcessed.clear();
                
        }
+
+       // Process the CREATED value.
+       
+       if (DateTimeCreatedData.size() > 0){
+               
+               if (DateTimeCreatedTokens.size() > 0){
+               
+                       DataLine += "CREATED;";
+                       DataLine += DateTimeCreatedTokens;
+                       
+               } else {
+
+                       DataLine += "CREATED";
+                       
+               }
+
+               DataLine += ":";
+               DataLine += DateTimeCreatedData;
+               DataLine += "\n";
+               
+               DataLineProcessed = OutputText(&DataLine);
+               
+               *SaveData += DataLineProcessed;
+               
+               DataLine.clear();
+               DataLineProcessed.clear();
+               
+       }
+       
+       // Process the DESCRIPTION values. Write out the
+       // first DESCRPITION only as per RFC5545 specifcation.
+       
+       if (DescriptionList.size() > 0){
+               
+               DataLine += "DESCRIPTION";
+               
+               if (DescriptionListAltRep[0].size() > 0){
+               
+                       DataLine += ";ALTREP=\"";
+                       DataLine += DescriptionListAltRep[0];
+                       DataLine += "\"";
+                       
+               }
+               
+               if (DescriptionListLanguage[0].size() > 0){
+               
+                       DataLine += ";LANGUAGE=";
+                       DataLine += DescriptionListLanguage[0];
+                       
+               }
+               
+               if (DescriptionListTokens[0].size() > 0){
+               
+                       DataLine += ";";
+                       DataLine += DescriptionListTokens[0];
+                       
+               }
+
+               DataLine += ":";
+               DataLine += DescriptionList[0];
+               DataLine += "\n";
+               
+               DataLineProcessed = OutputText(&DataLine);
+               
+               *SaveData += DataLineProcessed;
+               
+               DataLine.clear();
+               DataLineProcessed.clear();
+               
+       }
+       
+       // Process the DTSTART.
+       
+       if (DateTimeStartData.size() > 0){
+               
+               DataLine += "DTSTART";
+               
+               if (DateTimeStartDataValue.size() > 0){
+               
+                       DataLine += ";VALUE=";
+                       DataLine += DateTimeStartDataValue;                     
+                       
+               }
+               
+               if (DateTimeStartDataTimeZoneID.size() > 0){
+               
+                       DataLine += ";TZID=";
+                       DataLine += DateTimeStartDataTimeZoneID;                        
+                       
+               }
+               
+               if (DateTimeStartDataTokens.size() > 0){
+               
+                       DataLine += ";";
+                       DataLine += DateTimeStartDataTokens;
+                       
+               }
+
+               DataLine += ":";
+               DataLine += DateTimeStartData;
+               DataLine += "\n";
+               
+               DataLineProcessed = OutputText(&DataLine);
+               
+               *SaveData += DataLineProcessed;
+               
+               DataLine.clear();
+               DataLineProcessed.clear();
+               
+       }
+       
+       // Process the GEO value.
+       
+       if (GeographicData.size() > 0){
+               
+               if (GeographicTokens.size() > 0){
+               
+                       DataLine += "GEO;";
+                       DataLine += GeographicTokens;
+                       
+               } else {
+
+                       DataLine += "GEO";
+                       
+               }
+
+               DataLine += ":";
+               DataLine += GeographicData;
+               DataLine += "\n";
+               
+               DataLineProcessed = OutputText(&DataLine);
+               
+               *SaveData += DataLineProcessed;
+               
+               DataLine.clear();
+               DataLineProcessed.clear();
+               
+       }
+       
+       // Process the LAST-MODIFIED value.
+       
+       if (LastModifiedData.size() > 0){
+               
+               if (LastModifiedTokens.size() > 0){
+               
+                       DataLine += "LAST-MODIFIED;";
+                       DataLine += LastModifiedTokens;
+                       
+               } else {
+
+                       DataLine += "LAST-MODIFIED";
+                       
+               }
+
+               DataLine += ":";
+               DataLine += LastModifiedData;
+               DataLine += "\n";
+               
+               DataLineProcessed = OutputText(&DataLine);
+               
+               *SaveData += DataLineProcessed;
+               
+               DataLine.clear();
+               DataLineProcessed.clear();
+               
+       }
+       
+       // Process the LOCATION value.
+
+       if (LocationData.size() > 0){
+               
+               DataLine += "LOCATION";
+               
+               if (LocationDataAltRep.size() > 0){
+               
+                       DataLine += ";ALTREP=\"";
+                       DataLine += LocationDataAltRep;
+                       DataLine += "\"";
+                       
+               }
+               
+               if (LocationDataLanguage.size() > 0){
+               
+                       DataLine += ";LANGUAGE=";
+                       DataLine += LocationDataLanguage;                       
+                       
+               }
+               
+               if (LocationDataTokens.size() > 0){
+               
+                       DataLine += ";";
+                       DataLine += LocationDataTokens;
+                       
+               }
+               
+               DataLine += ":";
+               DataLine += LocationData;
+               DataLine += "\n";
+               
+               DataLineProcessed = OutputText(&DataLine);
+               
+               *SaveData += DataLineProcessed;
+
+               DataLine.clear();
+               DataLineProcessed.clear();
+               
+       }
+       
+       // Process the ORGANIZER value.
+       
+       if (OrganiserData.size() > 0){
+               
+               DataLine += "ORGANIZER";
+               
+               if (OrganiserDataCommonName.size() > 0){
+               
+                       DataLine += ";CN=";
+                       DataLine += OrganiserDataCommonName;
+                       
+               }
+
+               if (OrganiserDataDirectoryEntry.size() > 0){
+               
+                       DataLine += ";DIR=\"";
+                       DataLine += OrganiserDataDirectoryEntry;
+                       DataLine += "\"";
+                       
+               }
+               
+               if (OrganiserDataSentByParam.size() > 0){
+               
+                       DataLine += ";SENT-BY=\"";
+                       DataLine += OrganiserDataSentByParam;                   
+                       DataLine += "\"";
+                       
+               }
+               
+               if (OrganiserDataLanguage.size() > 0){
+               
+                       DataLine += ";LANGUAGE=";
+                       DataLine += OrganiserDataLanguage;                      
+                       
+               }
+               
+               if (OrganiserDataTokens.size() > 0){
+               
+                       DataLine += ";";
+                       DataLine += OrganiserDataTokens;
+                       
+               }
+               
+               DataLine += ":";
+               DataLine += OrganiserData;
+               DataLine += "\n";
+               
+               DataLineProcessed = OutputText(&DataLine);
+               
+               *SaveData += DataLineProcessed;
+
+               DataLine.clear();
+               DataLineProcessed.clear();
+               
+       }
+       
+       // Process the PERCENT-COMPLETE value.
+       
+       if (PercentCompleteData.size() > 0){
+               
+               if (PercentCompleteTokens.size() > 0){
+               
+                       DataLine += "PERCENT-COMPLETE;";
+                       DataLine += PercentCompleteTokens;
+                       
+               } else {
+
+                       DataLine += "PERCENT-COMPLETE";
+                       
+               }
+
+               DataLine += ":";
+               DataLine += PercentCompleteData;
+               DataLine += "\n";
+               
+               DataLineProcessed = OutputText(&DataLine);
+               
+               *SaveData += DataLineProcessed;
+               
+               DataLine.clear();
+               DataLineProcessed.clear();
+               
+       }
+       
+       // Process the DURATION value.
+       
+       if (DurationData.size() > 0){
+               
+               DataLine += "DURATION";
+
+               if (DurationDataTokens.size() > 0){
+               
+                       DataLine += ";";
+                       DataLine += DurationDataTokens;
+                       
+               }
+               
+               DataLine += ":";
+               DataLine += DurationData;
+               DataLine += "\n";
+               
+               DataLineProcessed = OutputText(&DataLine);
+               
+               *SaveData += DataLineProcessed;
+
+               DataLine.clear();
+               DataLineProcessed.clear();
+               
+       }
+       
+       // Process the PRIORITY value.
+       
+       if (PriorityData > -1 && PriorityData < 10){
+               
+               DataLine += "PRIORITY";
+               
+               if (PriorityTokens.size() > 0){
+               
+                       DataLine += ";";
+                       DataLine += PriorityTokens;
+                       
+               }
+               
+               DataLine += ":";
+               DataLine += to_string(PriorityData);
+               DataLine += "\n";
+               
+               DataLineProcessed = OutputText(&DataLine);
+               
+               *SaveData += DataLineProcessed;
+
+               DataLine.clear();
+               DataLineProcessed.clear();
+               
+       }
+       
+       // Process the RECURRENCE-ID value.
+       
+       if (RecurranceIDData.size() > 0){
+               
+               DataLine += "RECURRENCE-ID";
+
+               if (RecurranceIDDataTimeZoneParam.size() > 0){
+               
+                       DataLine += ";TZID=";
+                       DataLine += RecurranceIDDataTimeZoneParam;                      
+                       
+               }
+               
+               if (RecurranceIDDataRangeParam.size() > 0){
+               
+                       DataLine += ";RANGE=";
+                       DataLine += RecurranceIDDataRangeParam;                 
+                       
+               }
+               
+               if (RecurranceIDDataValue.size() > 0){
+               
+                       DataLine += ";VALUE=";
+                       DataLine += RecurranceIDDataValue;                      
+                       
+               }
+               
+               if (RecurranceIDDataTokens.size() > 0){
+               
+                       DataLine += ";";
+                       DataLine += RecurranceIDDataTokens;
+                       
+               }
+               
+               DataLine += ":";
+               DataLine += RecurranceIDData;
+               DataLine += "\n";
+               
+               DataLineProcessed = OutputText(&DataLine);
+               
+               *SaveData += DataLineProcessed;
+
+               DataLine.clear();
+               DataLineProcessed.clear();
+               
+       }
+       
+       // Process the SEQUENCE value.
+       
+       if (SequenceData > -1 && SequenceData < 10){
+               
+               DataLine += "SEQUENCE";
+               
+               if (SequenceTokens.size() > 0){
+               
+                       DataLine += ";";
+                       DataLine += SequenceTokens;
+                       
+               }
+               
+               DataLine += ":";
+               DataLine += to_string(SequenceData);
+               DataLine += "\n";
+               
+               DataLineProcessed = OutputText(&DataLine);
+               
+               *SaveData += DataLineProcessed;
+
+               DataLine.clear();
+               DataLineProcessed.clear();
+               
+       }
+       
+       // Process the STATUS value.
+       
+       if (StatusData.size() > 0){
+               
+               DataLine += "STATUS";
+               
+               if (StatusLanguage.size() > 0){
+               
+                       DataLine += ";LANGUAGE=";
+                       DataLine += StatusLanguage;                     
+                       
+               }
+               
+               if (StatusTokens.size() > 0){
+               
+                       DataLine += ";";
+                       DataLine += StatusTokens;
+                       
+               }
+               
+               DataLine += ":";
+               DataLine += StatusData;
+               DataLine += "\n";
+               
+               DataLineProcessed = OutputText(&DataLine);
+               
+               *SaveData += DataLineProcessed;
+
+               DataLine.clear();
+               DataLineProcessed.clear();
+               
+       }
+       
+       // Process the SUMMARY.
+       
+       if (SummaryData.size() > 0){
+               
+               DataLine += "SUMMARY";
+               
+               if (SummaryDataAltRep.size() > 0){
+               
+                       DataLine += ";ALTREP=\"";
+                       DataLine += SummaryDataAltRep;
+                       DataLine += "\"";
+                       
+               }
+               
+               if (SummaryDataLanguage.size() > 0){
+               
+                       DataLine += ";LANGUAGE=";
+                       DataLine += SummaryDataLanguage;                        
+                       
+               }
+               
+               if (SummaryDataTokens.size() > 0){
+               
+                       DataLine += ";";
+                       DataLine += SummaryDataTokens;
+                       
+               }
+               
+               DataLine += ":";
+               DataLine += SummaryData;
+               DataLine += "\n";
+               
+               DataLineProcessed = OutputText(&DataLine);
+               
+               *SaveData += DataLineProcessed;
+
+               DataLine.clear();
+               DataLineProcessed.clear();
+               
+       }
+       
+       // Process the URL value.
+       
+       if (URLData.size() > 0){
+               
+               DataLine += "URL";
+
+               if (URLDataTokens.size() > 0){
+               
+                       DataLine += ";";
+                       DataLine += URLDataTokens;
+                       
+               }
+               
+               DataLine += ":";
+               DataLine += URLData;
+               DataLine += "\n";
+               
+               DataLineProcessed = OutputText(&DataLine);
+               
+               *SaveData += DataLineProcessed;
+
+               DataLine.clear();
+               DataLineProcessed.clear();
+               
+       }
+       
+       // Process the RRULE value.
+       
+       if (RecurranceRuleData.size() > 0){
+               
+               DataLine += "RRULE";
+
+               if (RecurranceRuleDataTokens.size() > 0){
+               
+                       DataLine += ";";
+                       DataLine += RecurranceRuleDataTokens;
+                       
+               }
+               
+               DataLine += ":";
+               DataLine += RecurranceRuleData;
+               DataLine += "\n";
+               
+               DataLineProcessed = OutputText(&DataLine);
+               
+               *SaveData += DataLineProcessed;
+
+               DataLine.clear();
+               DataLineProcessed.clear();
+               
+       }
+       
+       // Process the DUE value.
+       
+       if (DueData.size() > 0){
+               
+               DataLine += "DUE";
+               
+               if (DueDataTimeZoneID.size() > 0){
+               
+                       DataLine += ";TZID=";
+                       DataLine += DueDataTimeZoneID;
+                       
+               }
+               
+               if (DueDataValue.size() > 0){
+               
+                       DataLine += ";VALUE=";
+                       DataLine += DueDataValue;
+                       
+               }
+               
+               if (SummaryDataTokens.size() > 0){
+               
+                       DataLine += ";";
+                       DataLine += DueDataTokens;
+                       
+               }
+               
+               DataLine += ":";
+               DataLine += DueData;
+               DataLine += "\n";
+               
+               DataLineProcessed = OutputText(&DataLine);
+               
+               *SaveData += DataLineProcessed;
+
+               DataLine.clear();
+               DataLineProcessed.clear();
+               
+       }
+       
+       // Process the ATTACH values.
+       
+       if (AttachList.size() > 0){
+               
+               for (int AttachListSeek = 0; AttachListSeek < AttachList.size();
+                       AttachListSeek++){
+                       
+                       DataLine += "ATTACH";
+
+                       if (AttachListFormatType[AttachListSeek].size() > 0){
+               
+                               DataLine += ";FMTTYPE=";
+                               DataLine += AttachListFormatType[AttachListSeek];
+                       
+                       }
+                               
+                       if (AttachListValue[AttachListSeek].size() > 0){
+               
+                               DataLine += ";VALUE=";
+                               DataLine += AttachListValue[AttachListSeek];
+                       
+                       }
+                               
+                       if (AttachListEncoding[AttachListSeek].size() > 0){
+               
+                               DataLine += ";ENCODING=";
+                               DataLine += AttachListEncoding[AttachListSeek];
+                       
+                       }
+                               
+                       if (AttachListTokens[AttachListSeek].size() > 0){
+               
+                               DataLine += ";";
+                               DataLine += AttachListTokens[AttachListSeek];
+                       
+                       }
+               
+                       DataLine += ":";
+                       DataLine += AttachList[AttachListSeek];
+                       DataLine += "\n";
+               
+                       DataLineProcessed = OutputText(&DataLine);
+               
+                       *SaveData += DataLineProcessed;
+
+                       DataLine.clear();
+                       DataLineProcessed.clear();
+                               
+               }
+               
+       }
+       
+       // Process the ATTENDEE value.
+       
+       if (AttendeeList.size() > 0){
+               
+               for (int AttendeeListSeek = 0; AttendeeListSeek < AttendeeList.size();
+                       AttendeeListSeek++){
+       
+                       DataLine += "ATTENDEE";
+
+                       if (AttendeeListMember[AttendeeListSeek].size() > 0){
+               
+                               DataLine += ";MEMBER=\"";
+                               DataLine += AttendeeListMember[AttendeeListSeek];
+                               DataLine += "\"";
+                       
+                       }
+                               
+                       if (AttendeeListDelegatedFrom[AttendeeListSeek].size() > 0){
+               
+                               DataLine += ";DELEGATED-FROM=\"";
+                               DataLine += AttendeeListDelegatedFrom[AttendeeListSeek];
+                               DataLine += "\"";
+                       
+                       }
+
+                       if (AttendeeListDelegatedTo[AttendeeListSeek].size() > 0){
+               
+                               DataLine += ";DELEGATED-TO=\"";
+                               DataLine += AttendeeListDelegatedTo[AttendeeListSeek];
+                               DataLine += "\"";
+                       
+                       }
+
+                       if (AttendeeListRole[AttendeeListSeek].size() > 0){
+               
+                               DataLine += ";ROLE=";
+                               DataLine += AttendeeListRole[AttendeeListSeek];
+                       
+                       }
+                       
+                       if (AttendeeListRSVP[AttendeeListSeek].size() > 0){
+               
+                               DataLine += ";RSVP=";
+                               DataLine += AttendeeListRSVP[AttendeeListSeek];
+                       
+                       }
+                       
+                       if (AttendeeListDirectoryEntry[AttendeeListSeek].size() > 0){
+               
+                               DataLine += ";DIR=\"";
+                               DataLine += AttendeeListDirectoryEntry[AttendeeListSeek];
+                               DataLine += "\"";
+                       
+                       }
+                       
+                       if (AttendeeListSentBy[AttendeeListSeek].size() > 0){
+                               
+                               DataLine += ";SENT-BY=\"";
+                               DataLine += AttendeeListSentBy[AttendeeListSeek];
+                               DataLine += "\"";
+                               
+                       }
+
+                       if (AttendeeListCommonName[AttendeeListSeek].size() > 0){
+                               
+                               DataLine += ";CN=\"";
+                               DataLine += AttendeeListCommonName[AttendeeListSeek];
+                               DataLine += "\"";
+                               
+                       }
+
+                       if (AttendeeListCalendarUserType[AttendeeListSeek].size() > 0){
+                               
+                               DataLine += ";CUTYPE=";
+                               DataLine += AttendeeListCalendarUserType[AttendeeListSeek];
+                               
+                       }
+                       
+                       if (AttendeeListParticipationStatus[AttendeeListSeek].size() > 0){
+                               
+                               DataLine += ";PARTSTAT=";
+                               DataLine += AttendeeListParticipationStatus[AttendeeListSeek];
+                               
+                       }
+                       
+                       if (AttendeeListLanguage[AttendeeListSeek].size() > 0){
+                               
+                               DataLine += ";LANGUAGE=";
+                               DataLine += AttendeeListLanguage[AttendeeListSeek];
+                               
+                       }
+                       
+                       if (AttendeeListTokens[AttendeeListSeek].size() > 0){
+               
+                               DataLine += ";";
+                               DataLine += AttendeeListTokens[AttendeeListSeek];
+                       
+                       }
+                               
+                       DataLine += ":";
+                       DataLine += AttendeeList[AttendeeListSeek];
+                       DataLine += "\n";
+               
+                       DataLineProcessed = OutputText(&DataLine);
+               
+                       *SaveData += DataLineProcessed;
+
+                       DataLine.clear();
+                       DataLineProcessed.clear();
+                               
+               }
+                       
+       }
+       
+       // Process the CATEGORIES value.
+       
+       if (CategoriesList.size() > 0){
+               
+               for (int CategoriesListSeek = 0; CategoriesListSeek < CategoriesList.size();
+                       CategoriesListSeek++){
+       
+                       DataLine += "CATEGORIES";
+                               
+                       if (CategoriesListLanguage[CategoriesListSeek].size() > 0){
+               
+                               DataLine += ";LANGUAGE=";
+                               DataLine += CategoriesListLanguage[CategoriesListSeek];
+                       
+                       }                       
+                       
+                       if (CategoriesListTokens[CategoriesListSeek].size() > 0){
+               
+                               DataLine += ";";
+                               DataLine += CategoriesListTokens[CategoriesListSeek];
+                       
+                       }
+                               
+                       DataLine += ":";
+                       DataLine += CategoriesList[CategoriesListSeek];
+                       DataLine += "\n";
+               
+                       DataLineProcessed = OutputText(&DataLine);
+               
+                       *SaveData += DataLineProcessed;
+
+                       DataLine.clear();
+                       DataLineProcessed.clear();
+                               
+               }
+               
+       }
+       
+       // Process the COMMENT value.
+       
+       if (CommentList.size() > 0){
+               
+               for (int CommentListSeek = 0; CommentListSeek < CommentList.size();
+                       CommentListSeek++){
+       
+                       DataLine += "COMMENT";
+                       
+                       if (CommentListAltRep[CommentListSeek].size() > 0){
+               
+                               DataLine += ";ALTREP=\"";
+                               DataLine += CommentListAltRep[CommentListSeek];
+                               DataLine += "\"";
+                       
+                       }
+                               
+                       if (CommentListLanguage[CommentListSeek].size() > 0){
+               
+                               DataLine += ";LANGUAGE=";
+                               DataLine += CommentListLanguage[CommentListSeek];
+                       
+                       }
+                       
+                       if (CommentListTokens[CommentListSeek].size() > 0){
+               
+                               DataLine += ";";
+                               DataLine += CommentListTokens[CommentListSeek];
+                       
+                       }
+                               
+                       DataLine += ":";
+                       DataLine += CommentList[CommentListSeek];
+                       DataLine += "\n";
+               
+                       DataLineProcessed = OutputText(&DataLine);
+               
+                       *SaveData += DataLineProcessed;
+
+                       DataLine.clear();
+                       DataLineProcessed.clear();
+                               
+               }
+               
+       }
+       
+       // Process the CONTACT value.
+       
+       if (ContactList.size() > 0){
+               
+               for (int ContactListSeek = 0; ContactListSeek < ContactList.size();
+                       ContactListSeek++){
+       
+                       DataLine += "CONTACT";
+                       
+                       if (ContactListAltRep[ContactListSeek].size() > 0){
+               
+                               DataLine += ";ALTREP=\"";
+                               DataLine += ContactListAltRep[ContactListSeek];
+                               DataLine += "\"";
+                       
+                       }
+                               
+                       if (ContactListLanguage[ContactListSeek].size() > 0){
+               
+                               DataLine += ";LANGUAGE=";
+                               DataLine += ContactListLanguage[ContactListSeek];
+                       
+                       }
+                       
+                       if (ContactListTokens[ContactListSeek].size() > 0){
+               
+                               DataLine += ";";
+                               DataLine += ContactListTokens[ContactListSeek];
+                       
+                       }
+                               
+                       DataLine += ":";
+                       DataLine += ContactList[ContactListSeek];
+                       DataLine += "\n";
+               
+                       DataLineProcessed = OutputText(&DataLine);
+               
+                       *SaveData += DataLineProcessed;
+
+                       DataLine.clear();
+                       DataLineProcessed.clear();
+                               
+               }
+               
+       }
+       
+       // Process the EXDATE value.
+       
+       if (ExcludeDateData.size() > 0){
+               
+               for (int ExcludeDateDataSeek = 0; ExcludeDateDataSeek < ExcludeDateData.size();
+                       ExcludeDateDataSeek++){
+       
+                       DataLine += "EXDATE";
+                               
+                       if (ExcludeDateDataTimeZoneParam[ExcludeDateDataSeek].size() > 0){
+               
+                               DataLine += ";TZID=";
+                               DataLine += ExcludeDateDataTimeZoneParam[ExcludeDateDataSeek];
+                       
+                       }
+                       
+                       if (ExcludeDateDataValue[ExcludeDateDataSeek].size() > 0){
+               
+                               DataLine += ";VALUE=";
+                               DataLine += ExcludeDateDataValue[ExcludeDateDataSeek];
+                       
+                       }
+                       
+                       if (ExcludeDateDataTokens[ExcludeDateDataSeek].size() > 0){
+               
+                               DataLine += ";";
+                               DataLine += ExcludeDateDataTokens[ExcludeDateDataSeek];
+                       
+                       }
+                               
+                       DataLine += ":";
+                       DataLine += ExcludeDateData[ExcludeDateDataSeek];
+                       DataLine += "\n";
+               
+                       DataLineProcessed = OutputText(&DataLine);
+               
+                       *SaveData += DataLineProcessed;
+
+                       DataLine.clear();
+                       DataLineProcessed.clear();
+                               
+               }
+               
+       }
+       
+       // Process the REQUEST-STATUS value.
+       
+       if (RequestStatusData.size() > 0){
+               
+               for (int RequestStatusDataSeek = 0; RequestStatusDataSeek < RequestStatusData.size();
+                       RequestStatusDataSeek++){
+       
+                       DataLine += "REQUEST-STATUS";
+                       
+                       if (RequestStatusLanguage[RequestStatusDataSeek].size() > 0){
+               
+                               DataLine += ";LANGUAGE=";
+                               DataLine += RequestStatusLanguage[RequestStatusDataSeek];
+                       
+                       }
+                       
+                       if (RequestStatusTokens[RequestStatusDataSeek].size() > 0){
+               
+                               DataLine += ";";
+                               DataLine += RequestStatusTokens[RequestStatusDataSeek];
+                       
+                       }
+                               
+                       DataLine += ":";
+                       DataLine += RequestStatusData[RequestStatusDataSeek];
+                       DataLine += "\n";
+               
+                       DataLineProcessed = OutputText(&DataLine);
+               
+                       *SaveData += DataLineProcessed;
+
+                       DataLine.clear();
+                       DataLineProcessed.clear();
+                               
+               }
+               
+       }
+       
+       // Process the RELATED-TO value.
+       
+       if (RelatedToData.size() > 0){
+               
+               for (int RequestToDataSeek = 0; RequestToDataSeek < RelatedToData.size();
+                       RequestToDataSeek++){
+       
+                       DataLine += "RELATED-TO";
+                       
+                       if (RelatedToDataRelationType[RequestToDataSeek].size() > 0){
+               
+                               DataLine += ";RELTYPE=";
+                               DataLine += RelatedToDataRelationType[RequestToDataSeek];
+                       
+                       }
+                       
+                       if (RelatedToDataTokens[RequestToDataSeek].size() > 0){
+               
+                               DataLine += ";";
+                               DataLine += RelatedToDataTokens[RequestToDataSeek];
+                       
+                       }
+                               
+                       DataLine += ":";
+                       DataLine += RelatedToData[RequestToDataSeek];
+                       DataLine += "\n";
+               
+                       DataLineProcessed = OutputText(&DataLine);
+               
+                       *SaveData += DataLineProcessed;
+
+                       DataLine.clear();
+                       DataLineProcessed.clear();
+                               
+               }
+               
+       }
+       
+       // Process the RESOURCES value.
+       
+       if (ResourcesData.size() > 0){
+               
+               for (int ResourcesDataSeek = 0; ResourcesDataSeek < ResourcesData.size();
+                       ResourcesDataSeek++){
+       
+                       DataLine += "RESOURCES";
+                       
+                       if (ResourcesDataAltRep[ResourcesDataSeek].size() > 0){
+               
+                               DataLine += ";ALTREP=\"";
+                               DataLine += ResourcesDataAltRep[ResourcesDataSeek];
+                               DataLine += "\"";
+                       
+                       }
+                               
+                       if (ResourcesDataLanguage[ResourcesDataSeek].size() > 0){
+               
+                               DataLine += ";LANGUAGE=";
+                               DataLine += ResourcesDataLanguage[ResourcesDataSeek];
+                       
+                       }
+                       
+                       if (ResourcesDataTokens[ResourcesDataSeek].size() > 0){
+               
+                               DataLine += ";";
+                               DataLine += ResourcesDataTokens[ResourcesDataSeek];
+                       
+                       }
+                               
+                       DataLine += ":";
+                       DataLine += ResourcesData[ResourcesDataSeek];
+                       DataLine += "\n";
+               
+                       DataLineProcessed = OutputText(&DataLine);
+               
+                       *SaveData += DataLineProcessed;
+
+                       DataLine.clear();
+                       DataLineProcessed.clear();
+                               
+               }
+               
+       }
+       
+       // Process the RDATE value.
+       
+       if (RecurranceDateData.size() > 0){
+               
+               for (int RecurranceDateDataSeek = 0; RecurranceDateDataSeek < RecurranceDateData.size();
+                       RecurranceDateDataSeek++){
+       
+                       DataLine += "RDATE";
+                       
+                       if (RecurranceDateDataValue[RecurranceDateDataSeek].size() > 0){
+               
+                               DataLine += ";VALUE=";
+                               DataLine += RecurranceDateDataValue[RecurranceDateDataSeek];
+                       
+                       }
+                               
+                       if (RecurranceDateDataTimeZoneParam[RecurranceDateDataSeek].size() > 0){
+               
+                               DataLine += ";TZID=";
+                               DataLine += RecurranceDateDataTimeZoneParam[RecurranceDateDataSeek];
+                       
+                       }
+                       
+                       if (RecurranceDateDataTokens[RecurranceDateDataSeek].size() > 0){
+               
+                               DataLine += ";";
+                               DataLine += RecurranceDateDataTokens[RecurranceDateDataSeek];
+                       
+                       }
+                               
+                       DataLine += ":";
+                       DataLine += RecurranceDateData[RecurranceDateDataSeek];
+                       DataLine += "\n";
+               
+                       DataLineProcessed = OutputText(&DataLine);
+               
+                       *SaveData += DataLineProcessed;
+
+                       DataLine.clear();
+                       DataLineProcessed.clear();
+                               
+               }
+               
+       }
+       
+       // Process the VALARMS.
+       
+       if (CalendarAlarmData.size() > 0){
+               
+               for (int CalendarAlarmDataSeek = 0; CalendarAlarmDataSeek < CalendarAlarmData.size();
+                       CalendarAlarmDataSeek++){
+                       
+                       *SaveData += "BEGIN:VALARM\n";
+                       
+                       // Process the ACTION VALARM value.
+                               
+                       DataLine += "ACTION";
+
+                       if (CalendarAlarmData[CalendarAlarmDataSeek].AlarmActionTokens.size() > 0){
+               
+                               DataLine += ";";
+                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AlarmActionTokens;
+                       
+                       }
+                               
+                       DataLine += ":";
+                       DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AlarmAction;
+                       DataLine += "\n";
+               
+                       DataLineProcessed = OutputText(&DataLine);
+               
+                       *SaveData += DataLineProcessed;
+
+                       DataLine.clear();
+                       DataLineProcessed.clear();
+                       
+                       // Process the TRIGGER VALARM value.
+                       
+                       if (CalendarAlarmData[CalendarAlarmDataSeek].TriggerData.size() > 0){
+                               
+                               DataLine += "TRIGGER";
+                               
+                               if (CalendarAlarmData[CalendarAlarmDataSeek].TriggerRelated.size() > 0){
+               
+                                       DataLine += ";RELATED=";
+                                       DataLine += CalendarAlarmData[CalendarAlarmDataSeek].TriggerRelated;
+                       
+                               }
+                               
+                               if (CalendarAlarmData[CalendarAlarmDataSeek].TriggerValue.size() > 0){
+               
+                                       DataLine += ";VALUE=";
+                                       DataLine += CalendarAlarmData[CalendarAlarmDataSeek].TriggerValue;
+                       
+                               }
+                               
+                               if (CalendarAlarmData[CalendarAlarmDataSeek].TriggerTokens.size() > 0){
+               
+                                       DataLine += ";";
+                                       DataLine += CalendarAlarmData[CalendarAlarmDataSeek].TriggerTokens;
+                       
+                               }
+                               
+                               DataLine += ":";
+                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].TriggerData;
+                               DataLine += "\n";
+               
+                               DataLineProcessed = OutputText(&DataLine);
+               
+                               *SaveData += DataLineProcessed;
+
+                               DataLine.clear();
+                               DataLineProcessed.clear();                              
+                               
+                       }
+                       
+                       // Process the DURATION VALARM value.
+                       
+                       if (CalendarAlarmData[CalendarAlarmDataSeek].DurationData.size() > 0){
+                               
+                               DataLine += "DURATION";
+                               
+                               if (CalendarAlarmData[CalendarAlarmDataSeek].DurationTokens.size() > 0){
+               
+                                       DataLine += ";";
+                                       DataLine += CalendarAlarmData[CalendarAlarmDataSeek].DurationTokens;
+                       
+                               }
+                               
+                               DataLine += ":";
+                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].DurationData;
+                               DataLine += "\n";
+               
+                               DataLineProcessed = OutputText(&DataLine);
+               
+                               *SaveData += DataLineProcessed;
+
+                               DataLine.clear();
+                               DataLineProcessed.clear();                              
+                               
+                       }
+                       
+                       // Process the DESCRIPTION VALARM value.
+                       
+                       if (CalendarAlarmData[CalendarAlarmDataSeek].DescriptionData.size() > 0){
+                               
+                               DataLine += "DESCRIPTION";
+
+                               if (CalendarAlarmData[CalendarAlarmDataSeek].DescriptionAltRep.size() > 0){
+               
+                                       DataLine += ";ALTREP=\"";
+                                       DataLine += CalendarAlarmData[CalendarAlarmDataSeek].DescriptionAltRep;
+                                       DataLine += "\"";
+                       
+                               }
+                               
+                               if (CalendarAlarmData[CalendarAlarmDataSeek].DescriptionLanguage.size() > 0){
+               
+                                       DataLine += ";LANGUAGE=";
+                                       DataLine += CalendarAlarmData[CalendarAlarmDataSeek].DescriptionLanguage;
+                       
+                               }
+                               
+                               if (CalendarAlarmData[CalendarAlarmDataSeek].DescriptionTokens.size() > 0){
+               
+                                       DataLine += ";";
+                                       DataLine += CalendarAlarmData[CalendarAlarmDataSeek].DescriptionTokens;
+                       
+                               }
+                               
+                               DataLine += ":";
+                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].DescriptionData;
+                               DataLine += "\n";
+               
+                               DataLineProcessed = OutputText(&DataLine);
+               
+                               *SaveData += DataLineProcessed;
+
+                               DataLine.clear();
+                               DataLineProcessed.clear();                              
+                               
+                       }
+                       
+                       // Process the SUMMARY VALARM value.
+                       
+                       if (CalendarAlarmData[CalendarAlarmDataSeek].SummaryData.size() > 0){
+                               
+                               DataLine += "SUMMARY";
+
+                               if (CalendarAlarmData[CalendarAlarmDataSeek].SummaryAltRep.size() > 0){
+               
+                                       DataLine += ";ALTREP=\"";
+                                       DataLine += CalendarAlarmData[CalendarAlarmDataSeek].SummaryAltRep;
+                                       DataLine += "\"";
+                       
+                               }
+                               
+                               if (CalendarAlarmData[CalendarAlarmDataSeek].SummaryLanguage.size() > 0){
+               
+                                       DataLine += ";LANGUAGE=";
+                                       DataLine += CalendarAlarmData[CalendarAlarmDataSeek].SummaryLanguage;
+                       
+                               }
+                               
+                               if (CalendarAlarmData[CalendarAlarmDataSeek].SummaryTokens.size() > 0){
+               
+                                       DataLine += ";";
+                                       DataLine += CalendarAlarmData[CalendarAlarmDataSeek].SummaryTokens;
+                       
+                               }
+                               
+                               DataLine += ":";
+                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].SummaryData;
+                               DataLine += "\n";
+               
+                               DataLineProcessed = OutputText(&DataLine);
+               
+                               *SaveData += DataLineProcessed;
+
+                               DataLine.clear();
+                               DataLineProcessed.clear();                              
+                               
+                       }
+                       
+                       // Process the REPEAT VALARM value.
+                       
+                       if (CalendarAlarmData[CalendarAlarmDataSeek].RepeatData.size() > 0){
+                               
+                               DataLine += "REPEAT";
+                               
+                               if (CalendarAlarmData[CalendarAlarmDataSeek].RepeatTokens.size() > 0){
+               
+                                       DataLine += ";";
+                                       DataLine += CalendarAlarmData[CalendarAlarmDataSeek].RepeatTokens;
+                       
+                               }
+                               
+                               DataLine += ":";
+                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].RepeatData;
+                               DataLine += "\n";
+               
+                               DataLineProcessed = OutputText(&DataLine);
+               
+                               *SaveData += DataLineProcessed;
+
+                               DataLine.clear();
+                               DataLineProcessed.clear();                              
+                               
+                       }
+                       
+                       // Process the ATTENDEE VALARM values.
+                       
+                       if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeList.size() > 0){
+               
+                               for (int AttendeeListSeek = 0; AttendeeListSeek < CalendarAlarmData[CalendarAlarmDataSeek].AttendeeList.size();
+                                       AttendeeListSeek++){
+       
+                                       DataLine += "ATTENDEE";
+
+                                       if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListMember[AttendeeListSeek].size() > 0){
+               
+                                               DataLine += ";MEMBER=\"";
+                                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListMember[AttendeeListSeek];
+                                               DataLine += "\"";
+                       
+                                       }
+                       
+                                       if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDelegatedFrom[AttendeeListSeek].size() > 0){
+               
+                                               DataLine += ";DELEGATED-FROM=\"";
+                                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDelegatedFrom[AttendeeListSeek];
+                                               DataLine += "\"";
+                       
+                                       }
+
+                                       if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDelegatedTo[AttendeeListSeek].size() > 0){
+               
+                                               DataLine += ";DELEGATED-TO=\"";
+                                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDelegatedTo[AttendeeListSeek];
+                                               DataLine += "\"";
+                       
+                                       }
+
+                                       if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListRole[AttendeeListSeek].size() > 0){
+               
+                                               DataLine += ";ROLE=";
+                                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListRole[AttendeeListSeek];
+                       
+                                       }
+                       
+                                       if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListRSVP[AttendeeListSeek].size() > 0){
+               
+                                               DataLine += ";RSVP=";
+                                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListRSVP[AttendeeListSeek];
+                       
+                                       }
+                       
+                                       if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDirectoryEntry[AttendeeListSeek].size() > 0){
+               
+                                               DataLine += ";DIR=\"";
+                                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDirectoryEntry[AttendeeListSeek];
+                                               DataLine += "\"";
+                       
+                                       }
+                       
+                                       if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListSentBy[AttendeeListSeek].size() > 0){
+                               
+                                               DataLine += ";SENT-BY=\"";
+                                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListSentBy[AttendeeListSeek];
+                                               DataLine += "\"";
+                               
+                                       }
+
+                                       if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListCommonName[AttendeeListSeek].size() > 0){
+                               
+                                               DataLine += ";CN=\"";
+                                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListCommonName[AttendeeListSeek];
+                                               DataLine += "\"";
+                               
+                                       }
+
+                                       if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListCalendarUserType[AttendeeListSeek].size() > 0){
+                               
+                                               DataLine += ";CUTYPE=";
+                                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListCalendarUserType[AttendeeListSeek];
+                               
+                                       }
+                       
+                                       if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListParticipationStatus[AttendeeListSeek].size() > 0){
+                               
+                                               DataLine += ";PARTSTAT=";
+                                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListParticipationStatus[AttendeeListSeek];
+                               
+                                       }
+                       
+                                       if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListLanguage[AttendeeListSeek].size() > 0){
+                               
+                                               DataLine += ";LANGUAGE=";
+                                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListLanguage[AttendeeListSeek];
+                               
+                                       }
+                       
+                                       if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListTokens[AttendeeListSeek].size() > 0){
+               
+                                               DataLine += ";";
+                                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListTokens[AttendeeListSeek];
+                       
+                                       }
+                               
+                                       DataLine += ":";
+                                       DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeList[AttendeeListSeek];
+                                       DataLine += "\n";
+               
+                                       DataLineProcessed = OutputText(&DataLine);
+               
+                                       *SaveData += DataLineProcessed;
+
+                                       DataLine.clear();
+                                       DataLineProcessed.clear();
+                               
+                               }
+                       
+                       }
+                       
+                       // Process the ATTACH VALARM values.
+                       
+                       if (CalendarAlarmData[CalendarAlarmDataSeek].AttachList.size() > 0){
+               
+                               for (int AttachListSeek = 0; AttachListSeek < CalendarAlarmData[CalendarAlarmDataSeek].AttachList.size();
+                                       AttachListSeek++){
+       
+                                       DataLine += "ATTACH";
+                                               
+                                       if (CalendarAlarmData[CalendarAlarmDataSeek].AttachListFormatType[AttachListSeek].size() > 0){
+               
+                                               DataLine += ";FMTTYPE=";
+                                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttachListFormatType[AttachListSeek];
+                       
+                                       }
+                               
+                                       if (CalendarAlarmData[CalendarAlarmDataSeek].AttachListValue[AttachListSeek].size() > 0){
+               
+                                               DataLine += ";VALUE=";
+                                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttachListValue[AttachListSeek];
+                       
+                                       }
+                               
+                                       if (CalendarAlarmData[CalendarAlarmDataSeek].AttachListEncoding[AttachListSeek].size() > 0){
+               
+                                               DataLine += ";ENCODING=";
+                                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttachListEncoding[AttachListSeek];
+                       
+                                       }
+                               
+                                       if (CalendarAlarmData[CalendarAlarmDataSeek].AttachListTokens[AttachListSeek].size() > 0){
+               
+                                               DataLine += ";";
+                                               DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttachListTokens[AttachListSeek];
+                       
+                                       }
+               
+                                       DataLine += ":";
+                                       DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttachList[AttachListSeek];
+                                       DataLine += "\n";
+               
+                                       DataLineProcessed = OutputText(&DataLine);
+               
+                                       *SaveData += DataLineProcessed;
+
+                                       DataLine.clear();
+                                       DataLineProcessed.clear();
+                                       
+                               }
+                               
+                       }
+                       
+                       // Process the X-Token VALARM values.
+                       
+                       if (CalendarAlarmData[CalendarAlarmDataSeek].XTokensData.size() > 0){
+                               
+                               for (int XTokenSeek = 0; XTokenSeek < CalendarAlarmData[CalendarAlarmDataSeek].XTokensData.size();
+                                       XTokenSeek++){
+       
+                                       DataLine += CalendarAlarmData[CalendarAlarmDataSeek].XTokensDataTokens[XTokenSeek];             
+                                       DataLine += ":";
+                                       DataLine += CalendarAlarmData[CalendarAlarmDataSeek].XTokensData[XTokenSeek];
+                                       DataLine += "\n";
+               
+                                       DataLineProcessed = OutputText(&DataLine);
+               
+                                       *SaveData += DataLineProcessed;
+
+                                       DataLine.clear();
+                                       DataLineProcessed.clear();
+                                       
+                               }
+                               
+                       }
+                       
+                       *SaveData += "END:VALARM\n";
+                       
+               }
+               
+       }
+       
+       // Process the X-Token values.
+       
+       if (XTokensData.size() > 0){
+                               
+               for (int XTokenSeek = 0; XTokenSeek < XTokensData.size();
+                       XTokenSeek++){
+       
+                       DataLine += XTokensDataTokens[XTokenSeek];              
+                       DataLine += ":";
+                       DataLine += XTokensData[XTokenSeek];
+                       DataLine += "\n";
+               
+                       DataLineProcessed = OutputText(&DataLine);
+       
+                       *SaveData += DataLineProcessed;
+
+                       DataLine.clear();
+                       DataLineProcessed.clear();
+                                       
+               }
+                               
+       }
        
        *SaveData += "END:VTODO\n";
        
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy