X-Git-Url: http://Server1/repobrowser/?p=xestiacalendar%2F.git;a=blobdiff_plain;f=source%2Fobjects%2Fcalendartask%2FCalendarTask-Save.cpp;h=6a138bd070675f173171f48b401d45d5eaf82c0a;hp=1b7ad704b23f3ce99e8f5d4b5b83b5558076b58d;hb=3e3ae5dc244fc2f0a905d0e3ba04d974809f02b7;hpb=9cb65a851b528f76ad6b075da24f4917cd2539c5 diff --git a/source/objects/calendartask/CalendarTask-Save.cpp b/source/objects/calendartask/CalendarTask-Save.cpp index 1b7ad70..6a138bd 100644 --- a/source/objects/calendartask/CalendarTask-Save.cpp +++ b/source/objects/calendartask/CalendarTask-Save.cpp @@ -1,514 +1,1655 @@ +// 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 + #include "CalendarTask.h" using namespace std; void CalendarTaskObject::SaveObjectData(string *SaveData){ - string DataLine = ""; - string DataLineProcessed = ""; + string dataLine = ""; + string dataLineProcessed = ""; - *SaveData += "BEGIN:VTODO\n"; + *saveData += "BEGIN:VTODO\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 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 COMPLETED value. - if (CompletedData.size() > 0){ + if (completedData.size() > 0){ - if (CompletedDataTokens.size() > 0){ + if (completedDataTokens.size() > 0){ - DataLine += "COMPLETED;"; - DataLine += CompletedDataTokens; + dataLine += "COMPLETED;"; + dataLine += completedDataTokens; } else { - DataLine += "COMPLETED"; + dataLine += "COMPLETED"; } - DataLine += ":"; - DataLine += CompletedData; - DataLine += "\n"; + dataLine += ":"; + dataLine += completedData; + 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){ + if (dateTimeCreatedTokens.size() > 0){ - DataLine += "CREATED;"; - DataLine += DateTimeCreatedTokens; + dataLine += "CREATED;"; + dataLine += dateTimeCreatedTokens; } else { - DataLine += "CREATED"; + dataLine += "CREATED"; } - DataLine += ":"; - DataLine += DateTimeCreatedData; - DataLine += "\n"; + dataLine += ":"; + dataLine += dateTimeCreatedData; + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *saveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } // Process the DESCRIPTION values. Write out the // first DESCRPITION only as per RFC5545 specifcation. - if (DescriptionList.size() > 0){ + if (descriptionList.size() > 0){ - DataLine += "DESCRIPTION"; + dataLine += "DESCRIPTION"; - if (DescriptionListAltRep[0].size() > 0){ + if (descriptionListAltRep[0].size() > 0){ - DataLine += ";ALTREP=\""; - DataLine += DescriptionListAltRep[0]; - DataLine += "\""; + dataLine += ";ALTREP=\""; + dataLine += descriptionListAltRep[0]; + dataLine += "\""; } - if (DescriptionListLanguage[0].size() > 0){ + if (descriptionListLanguage[0].size() > 0){ - DataLine += ";LANGUAGE="; - DataLine += DescriptionListLanguage[0]; + dataLine += ";LANGUAGE="; + dataLine += descriptionListLanguage[0]; } - if (DescriptionListTokens[0].size() > 0){ + if (descriptionListTokens[0].size() > 0){ - DataLine += ";"; - DataLine += DescriptionListTokens[0]; + dataLine += ";"; + dataLine += descriptionListTokens[0]; } - DataLine += ":"; - DataLine += DescriptionList[0]; - DataLine += "\n"; + dataLine += ":"; + dataLine += descriptionList[0]; + 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 GEO value. - if (GeographicData.size() > 0){ + if (geographicData.size() > 0){ - if (GeographicTokens.size() > 0){ + if (geographicTokens.size() > 0){ - DataLine += "GEO;"; - DataLine += GeographicTokens; + dataLine += "GEO;"; + dataLine += geographicTokens; } else { - DataLine += "GEO"; + dataLine += "GEO"; } - DataLine += ":"; - DataLine += GeographicData; - DataLine += "\n"; + dataLine += ":"; + dataLine += geographicData; + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *SaveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } // Process the LAST-MODIFIED value. - if (LastModifiedData.size() > 0){ + if (lastModifiedData.size() > 0){ - if (LastModifiedTokens.size() > 0){ + if (lastModifiedTokens.size() > 0){ - DataLine += "LAST-MODIFIED;"; - DataLine += LastModifiedTokens; + dataLine += "LAST-MODIFIED;"; + dataLine += lastModifiedTokens; } else { - DataLine += "LAST-MODIFIED"; + dataLine += "LAST-MODIFIED"; } - DataLine += ":"; - DataLine += LastModifiedData; - DataLine += "\n"; + dataLine += ":"; + dataLine += lastModifiedData; + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *SaveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } // Process the LOCATION value. - if (LocationData.size() > 0){ + if (locationData.size() > 0){ - DataLine += "LOCATION"; + dataLine += "LOCATION"; - if (LocationDataAltRep.size() > 0){ + if (locationDataAltRep.size() > 0){ - DataLine += ";ALTREP=\""; - DataLine += LocationDataAltRep; - DataLine += "\""; + dataLine += ";ALTREP=\""; + dataLine += locationDataAltRep; + dataLine += "\""; } - if (LocationDataLanguage.size() > 0){ + if (locationDataLanguage.size() > 0){ - DataLine += ";LANGUAGE="; - DataLine += LocationDataLanguage; + dataLine += ";LANGUAGE="; + dataLine += locationDataLanguage; } - if (LocationDataTokens.size() > 0){ + if (locationDataTokens.size() > 0){ - DataLine += ";"; - DataLine += LocationDataTokens; + dataLine += ";"; + dataLine += locationDataTokens; } - DataLine += ":"; - DataLine += LocationData; - DataLine += "\n"; + dataLine += ":"; + dataLine += locationData; + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *SaveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } // Process the ORGANIZER value. - if (OrganiserData.size() > 0){ + if (organiserData.size() > 0){ - DataLine += "ORGANIZER"; + dataLine += "ORGANIZER"; - if (OrganiserDataCommonName.size() > 0){ + if (organiserDataCommonName.size() > 0){ - DataLine += ";CN="; - DataLine += OrganiserDataCommonName; + dataLine += ";CN="; + dataLine += organiserDataCommonName; } - if (OrganiserDataDirectoryEntry.size() > 0){ + if (organiserDataDirectoryEntry.size() > 0){ - DataLine += ";DIR=\""; - DataLine += OrganiserDataDirectoryEntry; - DataLine += "\""; + dataLine += ";DIR=\""; + dataLine += organiserDataDirectoryEntry; + dataLine += "\""; } - if (OrganiserDataSentByParam.size() > 0){ + if (organiserDataSentByParam.size() > 0){ - DataLine += ";SENT-BY=\""; - DataLine += OrganiserDataSentByParam; - DataLine += "\""; + dataLine += ";SENT-BY=\""; + dataLine += organiserDataSentByParam; + dataLine += "\""; } - if (OrganiserDataLanguage.size() > 0){ + if (organiserDataLanguage.size() > 0){ - DataLine += ";LANGUAGE="; - DataLine += OrganiserDataLanguage; + dataLine += ";LANGUAGE="; + dataLine += organiserDataLanguage; } - if (OrganiserDataTokens.size() > 0){ + if (organiserDataTokens.size() > 0){ - DataLine += ";"; - DataLine += OrganiserDataTokens; + dataLine += ";"; + dataLine += organiserDataTokens; } - DataLine += ":"; - DataLine += OrganiserData; - DataLine += "\n"; + dataLine += ":"; + dataLine += organiserData; + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *SaveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } // Process the PERCENT-COMPLETE value. - if (PercentCompleteData.size() > 0){ + if (percentCompleteData.size() > 0){ - if (PercentCompleteTokens.size() > 0){ + if (percentCompleteTokens.size() > 0){ - DataLine += "PERCENT-COMPLETE;"; - DataLine += PercentCompleteTokens; + dataLine += "PERCENT-COMPLETE;"; + dataLine += percentCompleteTokens; } else { - DataLine += "PERCENT-COMPLETE"; + dataLine += "PERCENT-COMPLETE"; } - DataLine += ":"; - DataLine += PercentCompleteData; - DataLine += "\n"; + 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){ - DataLineProcessed = OutputText(&DataLine); + dataLine += ";"; + dataLine += durationDataTokens; + + } + + dataLine += ":"; + dataLine += durationData; + dataLine += "\n"; - *SaveData += DataLineProcessed; + dataLineProcessed = OutputText(&dataLine); - DataLine.clear(); - DataLineProcessed.clear(); + *SaveData += dataLineProcessed; + + dataLine.clear(); + dataLineProcessed.clear(); } // Process the PRIORITY value. - if (PriorityData > -1 && PriorityData < 10){ + if (priorityData > -1 && priorityData < 10){ - DataLine += "PRIORITY"; + dataLine += "PRIORITY"; if (PriorityTokens.size() > 0){ - DataLine += ";"; - DataLine += PriorityTokens; + dataLine += ";"; + dataLine += priorityTokens; } - DataLine += ":"; - DataLine += to_string(PriorityData); - DataLine += "\n"; + dataLine += ":"; + dataLine += to_string(priorityData); + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *SaveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } // Process the RECURRENCE-ID value. - if (RecurranceIDData.size() > 0){ + if (recurranceIDData.size() > 0){ - DataLine += "RECURRENCE-ID"; + dataLine += "RECURRENCE-ID"; - if (RecurranceIDDataTimeZoneParam.size() > 0){ + if (recurranceIDDataTimeZoneParam.size() > 0){ - DataLine += ";TZID="; - DataLine += RecurranceIDDataTimeZoneParam; + dataLine += ";TZID="; + dataLine += recurranceIDDataTimeZoneParam; } - if (RecurranceIDDataRangeParam.size() > 0){ + if (recurranceIDDataRangeParam.size() > 0){ - DataLine += ";RANGE="; - DataLine += RecurranceIDDataRangeParam; + dataLine += ";RANGE="; + dataLine += recurranceIDDataRangeParam; } - if (RecurranceIDDataValue.size() > 0){ + if (recurranceIDDataValue.size() > 0){ - DataLine += ";VALUE="; - DataLine += RecurranceIDDataValue; + dataLine += ";VALUE="; + dataLine += recurranceIDDataValue; } - if (RecurranceIDDataTokens.size() > 0){ + if (recurranceIDDataTokens.size() > 0){ - DataLine += ";"; - DataLine += RecurranceIDDataTokens; + dataLine += ";"; + dataLine += recurranceIDDataTokens; } - DataLine += ":"; - DataLine += RecurranceIDData; - DataLine += "\n"; + dataLine += ":"; + dataLine += recurranceIDData; + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *SaveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } // Process the SEQUENCE value. - if (SequenceData > -1 && SequenceData < 10){ + if (sequenceData > -1 && sequenceData < 10){ - DataLine += "SEQUENCE"; + dataLine += "SEQUENCE"; - if (SequenceTokens.size() > 0){ + if (sequenceTokens.size() > 0){ - DataLine += ";"; - DataLine += SequenceTokens; + dataLine += ";"; + dataLine += sequenceTokens; } - DataLine += ":"; - DataLine += to_string(SequenceData); - DataLine += "\n"; + dataLine += ":"; + dataLine += to_string(sequenceData); + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *SaveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + 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 (dueDataTokens.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 (xTokenData.size() > 0){ + + for (int XTokenSeek = 0; XTokenSeek < xTokenData.size(); + XTokenSeek++){ + + dataLine += xTokenDataTokens[XTokenSeek]; + dataLine += ":"; + dataLine += xTokenData[XTokenSeek]; + dataLine += "\n"; + + dataLineProcessed = OutputText(&dataLine); + + *SaveData += dataLineProcessed; + + dataLine.clear(); + dataLineProcessed.clear(); + + } + } *SaveData += "END:VTODO\n";