+// CalendarEvent.cpp - CalendarEventObject 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 "CalendarEvent.h"
using namespace std;
-void CalendarEventObject::SaveObjectData(string *SaveData){
+void CalendarEventObject::SaveObjectData(string *saveData){
- string DataLine = "";
- string DataLineProcessed = "";
+ string dataLine = "";
+ string dataLineProcessed = "";
- *SaveData += "BEGIN:VEVENT\n";
+ *saveData += "BEGIN:VEVENT\n";
// Process the UID.
- if (UniqueID.size() > 0){
+ if (uniqueID.size() > 0){
- if (UniqueIDTokens.size() > 0){
+ if (uniqueIDTokens.size() > 0){
- DataLine += "UID;";
- DataLine += UniqueIDTokens;
+ dataLine += "UID;";
+ dataLine += uniqueIDTokens;
} else {
- DataLine += "UID";
+ dataLine += "UID";
}
- DataLine += ":";
- DataLine += UniqueID;
- DataLine += "\n";
+ dataLine += ":";
+ dataLine += uniqueID;
+ dataLine += "\n";
- DataLineProcessed = OutputText(&DataLine);
+ dataLineProcessed = OutputText(&dataLine);
- *SaveData += DataLineProcessed;
+ *saveData += dataLineProcessed;
- DataLine.clear();
- DataLineProcessed.clear();
+ dataLine.clear();
+ dataLineProcessed.clear();
}
// Process the DTSTAMP.
- if (DateTimeStampData.size() > 0){
+ if (dateTimeStampData.size() > 0){
- if (DateTimeStampTokens.size() > 0){
+ if (dateTimeStampTokens.size() > 0){
- DataLine += "DTSTAMP;";
- DataLine += DateTimeStampTokens;
+ dataLine += "DTSTAMP;";
+ dataLine += dateTimeStampTokens;
} else {
- DataLine += "DTSTAMP";
+ dataLine += "DTSTAMP";
}
- DataLine += ":";
- DataLine += DateTimeStampData;
- DataLine += "\n";
+ dataLine += ":";
+ dataLine += dateTimeStampData;
+ dataLine += "\n";
- DataLineProcessed = OutputText(&DataLine);
+ dataLineProcessed = OutputText(&dataLine);
- *SaveData += DataLineProcessed;
+ *saveData += dataLineProcessed;
- DataLine.clear();
- DataLineProcessed.clear();
+ dataLine.clear();
+ dataLineProcessed.clear();
}
// Process the DTSTART.
- if (DateTimeStartData.size() > 0){
+ if (dateTimeStartData.size() > 0){
- DataLine += "DTSTART";
+ dataLine += "DTSTART";
- if (DateTimeStartDataValue.size() > 0){
+ if (dateTimeStartDataValue.size() > 0){
- DataLine += ";VALUE=";
- DataLine += DateTimeStartDataValue;
+ dataLine += ";VALUE=";
+ dataLine += dateTimeStartDataValue;
}
- if (DateTimeStartDataTimeZoneID.size() > 0){
+ if (dateTimeStartDataTimeZoneID.size() > 0){
- DataLine += ";TZID=";
- DataLine += DateTimeStartDataTimeZoneID;
+ dataLine += ";TZID=";
+ dataLine += dateTimeStartDataTimeZoneID;
}
- if (DateTimeStartDataTokens.size() > 0){
+ if (dateTimeStartDataTokens.size() > 0){
- DataLine += ";";
- DataLine += DateTimeStartDataTokens;
+ dataLine += ";";
+ dataLine += dateTimeStartDataTokens;
}
- DataLine += ":";
- DataLine += DateTimeStartData;
- DataLine += "\n";
+ dataLine += ":";
+ dataLine += dateTimeStartData;
+ dataLine += "\n";
- DataLineProcessed = OutputText(&DataLine);
+ dataLineProcessed = OutputText(&dataLine);
- *SaveData += DataLineProcessed;
+ *saveData += dataLineProcessed;
- DataLine.clear();
- DataLineProcessed.clear();
+ dataLine.clear();
+ dataLineProcessed.clear();
}
// Process the DTEND.
- if (DateTimeEndData.size() > 0){
+ if (dateTimeEndData.size() > 0){
- DataLine += "DTEND";
+ dataLine += "DTEND";
- if (DateTimeEndDataValue.size() > 0){
+ if (dateTimeEndDataValue.size() > 0){
- DataLine += ";VALUE=";
- DataLine += DateTimeEndDataValue;
+ dataLine += ";VALUE=";
+ dataLine += dateTimeEndDataValue;
}
- if (DateTimeEndDataTimeZoneID.size() > 0){
+ if (dateTimeEndDataTimeZoneID.size() > 0){
- DataLine += ";TZID=";
- DataLine += DateTimeEndDataTimeZoneID;
+ dataLine += ";TZID=";
+ dataLine += dateTimeEndDataTimeZoneID;
}
- if (DateTimeEndDataTokens.size() > 0){
+ if (dateTimeEndDataTokens.size() > 0){
- DataLine += ";";
- DataLine += DateTimeEndDataTokens;
+ dataLine += ";";
+ dataLine += dateTimeEndDataTokens;
}
- DataLine += ":";
- DataLine += DateTimeEndData;
- DataLine += "\n";
+ dataLine += ":";
+ dataLine += dateTimeEndData;
+ dataLine += "\n";
- DataLineProcessed = OutputText(&DataLine);
+ dataLineProcessed = OutputText(&dataLine);
- *SaveData += DataLineProcessed;
+ *saveData += dataLineProcessed;
- DataLine.clear();
- DataLineProcessed.clear();
+ dataLine.clear();
+ dataLineProcessed.clear();
}
// Process the SUMMARY.
- if (SummaryData.size() > 0){
+ if (summaryData.size() > 0){
- DataLine += "SUMMARY";
+ dataLine += "SUMMARY";
- if (SummaryDataAltRep.size() > 0){
+ if (summaryDataAltRep.size() > 0){
- DataLine += ";ALTREP=\"";
- DataLine += SummaryDataAltRep;
- DataLine += "\"";
+ dataLine += ";ALTREP=\"";
+ dataLine += summaryDataAltRep;
+ dataLine += "\"";
}
- if (SummaryDataLanguage.size() > 0){
+ if (summaryDataLanguage.size() > 0){
- DataLine += ";LANGUAGE=";
- DataLine += SummaryDataLanguage;
+ dataLine += ";LANGUAGE=";
+ dataLine += summaryDataLanguage;
}
- if (SummaryDataTokens.size() > 0){
+ if (summaryDataTokens.size() > 0){
- DataLine += ";";
- DataLine += SummaryDataTokens;
+ dataLine += ";";
+ dataLine += summaryDataTokens;
}
- DataLine += ":";
- DataLine += SummaryData;
- DataLine += "\n";
+ dataLine += ":";
+ dataLine += summaryData;
+ dataLine += "\n";
- DataLineProcessed = OutputText(&DataLine);
+ dataLineProcessed = OutputText(&dataLine);
- *SaveData += DataLineProcessed;
+ *saveData += dataLineProcessed;
- DataLine.clear();
- DataLineProcessed.clear();
+ dataLine.clear();
+ dataLineProcessed.clear();
}
// Process the CLASS value.
- if (ClassData.size() > 0){
+ if (classData.size() > 0){
- if (ClassDataTokens.size() > 0){
+ if (classDataTokens.size() > 0){
- DataLine += "CLASS;";
- DataLine += ClassDataTokens;
+ dataLine += "CLASS;";
+ dataLine += classDataTokens;
} else {
- DataLine += "CLASS";
+ dataLine += "CLASS";
}
- DataLine += ":";
- DataLine += ClassData;
- DataLine += "\n";
+ dataLine += ":";
+ dataLine += classData;
+ dataLine += "\n";
- DataLineProcessed = OutputText(&DataLine);
+ dataLineProcessed = OutputText(&dataLine);
- *SaveData += DataLineProcessed;
+ *saveData += dataLineProcessed;
- DataLine.clear();
- DataLineProcessed.clear();
+ dataLine.clear();
+ dataLineProcessed.clear();
}
// Process the CREATED value.
- if (DateTimeCreatedData.size() > 0){
+ 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 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 (DateTimeCreatedTokens.size() > 0){
+ if (lastModifiedTokens.size() > 0){
- DataLine += "CREATED;";
- DataLine += DateTimeCreatedTokens;
+ dataLine += "LAST-MODIFIED;";
+ dataLine += lastModifiedTokens;
} else {
- DataLine += "CREATED";
+ 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 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 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 TRANSP value.
+
+ if (timeTransparencyData.size() > 0){
+
+ dataLine += "TRANSP";
+
+ if (timeTransparencyDataTokens.size() > 0){
+
+ dataLine += ";";
+ dataLine += timeTransparencyDataTokens;
+
+ }
+
+ dataLine += ":";
+ dataLine += timeTransparencyData;
+ 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 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 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 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 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 += ":";
- DataLine += DateTimeCreatedData;
- DataLine += "\n";
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the ATTENDEE value.
+
+ if (attendeeList.size() > 0){
- DataLineProcessed = OutputText(&DataLine);
+ for (int attendeeListSeek = 0; attendeeListSeek < attendeeList.size();
+ attendeeListSeek++){
+
+ dataLine += "ATTENDEE";
+
+ if (attendeeListMember[attendeeListSeek].size() > 0){
- *SaveData += DataLineProcessed;
+ dataLine += ";MEMBER=\"";
+ dataLine += attendeeListMember[attendeeListSeek];
+ dataLine += "\"";
+
+ }
+
+ if (attendeeListDelegatedFrom[attendeeListSeek].size() > 0){
- DataLine.clear();
- DataLineProcessed.clear();
+ 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:VEVENT\n";
+ *saveData += "END:VEVENT\n";
}
\ No newline at end of file