X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fobjects%2Fcalendarfreebusy%2FCalendarFreeBusy-Save.cpp;h=69f474176947d82d3217e53d6002e68112d910c7;hb=f8aea5fde527b8ca5e103da9e9b8071e59b0dc80;hp=ecf68e831a98394bd71f4df748a05dc2663e1303;hpb=8ce441e9372bb15b98a708d2fe09dd2fdd948057;p=xestiacalendar%2F.git diff --git a/source/objects/calendarfreebusy/CalendarFreeBusy-Save.cpp b/source/objects/calendarfreebusy/CalendarFreeBusy-Save.cpp index ecf68e8..69f4741 100644 --- a/source/objects/calendarfreebusy/CalendarFreeBusy-Save.cpp +++ b/source/objects/calendarfreebusy/CalendarFreeBusy-Save.cpp @@ -1,110 +1,128 @@ +// CalendarFreeBusy-Save.cpp - CalendarFreeBusy 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 "CalendarFreeBusy.h" using namespace std; void CalendarFreeBusyObject::SaveObjectData(string *SaveData){ - string DataLine = ""; - string DataLineProcessed = ""; + string dataLine = ""; + string dataLineProcessed = ""; - *SaveData += "BEGIN:VFREEBUSY\n"; + *saveData += "BEGIN:VFREEBUSY\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 CONTACT value. - if (ContactList.size() > 0){ + if (contactList.size() > 0){ - if (ContactList[0].size() > 0){ + if (contactList[0].size() > 0){ - DataLine += "CONTACT"; + dataLine += "CONTACT"; - if (ContactListAltRep[0].size() > 0){ + if (contactListAltRep[0].size() > 0){ - DataLine += ";ALTREP=\""; - DataLine += ContactListAltRep[0]; - DataLine += "\""; + dataLine += ";ALTREP=\""; + dataLine += contactListAltRep[0]; + dataLine += "\""; } - if (ContactListLanguage[0].size() > 0){ + if (contactListLanguage[0].size() > 0){ - DataLine += ";LANGUAGE="; - DataLine += ContactListLanguage[0]; + dataLine += ";LANGUAGE="; + dataLine += contactListLanguage[0]; } - if (ContactListTokens[0].size() > 0){ + if (contactListTokens[0].size() > 0){ - DataLine += ";"; - DataLine += ContactListTokens[0]; + dataLine += ";"; + dataLine += contactListTokens[0]; } - DataLine += ":"; - DataLine += ContactList[0]; - DataLine += "\n"; + dataLine += ":"; + dataLine += contactList[0]; + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *saveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } @@ -112,83 +130,425 @@ void CalendarFreeBusyObject::SaveObjectData(string *SaveData){ // 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"; + + if (dateTimeEndDataValue.size() > 0){ + + dataLine += ";VALUE="; + dataLine += dateTimeEndDataValue; + + } + + if (dateTimeEndDataTimeZoneID.size() > 0){ + + dataLine += ";TZID="; + dataLine += dateTimeEndDataTimeZoneID; + + } + + if (dateTimeEndDataTokens.size() > 0){ + + dataLine += ";"; + dataLine += dateTimeEndDataTokens; + + } + + dataLine += ":"; + dataLine += dateTimeEndData; + 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 += "DTEND"; + dataLine += ";LANGUAGE="; + dataLine += organiserDataLanguage; + + } - if (DateTimeEndDataValue.size() > 0){ + if (organiserDataTokens.size() > 0){ - DataLine += ";VALUE="; - DataLine += DateTimeEndDataValue; + dataLine += ";"; + dataLine += organiserDataTokens; } - if (DateTimeEndDataTimeZoneID.size() > 0){ + dataLine += ":"; + dataLine += organiserData; + 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 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 += ";TZID="; - DataLine += DateTimeEndDataTimeZoneID; + dataLine += ";"; + dataLine += attendeeListTokens[attendeeListSeek]; + } + + DataLine += ":"; + DataLine += AttendeeList[AttendeeListSeek]; + DataLine += "\n"; + + DataLineProcessed = OutputText(&DataLine); + + *SaveData += DataLineProcessed; + + DataLine.clear(); + DataLineProcessed.clear(); + } + + } + + // Process the COMMENT value. + + if (commentList.size() > 0){ - if (DateTimeEndDataTokens.size() > 0){ + for (int commentListSeek = 0; commentListSeek < commentList.size(); + commentListSeek++){ + + dataLine += "COMMENT"; + + if (commentListAltRep[commentListSeek].size() > 0){ - DataLine += ";"; - DataLine += DateTimeEndDataTokens; + 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 FREEBUSY value. + + if (freeBusyList.size() > 0){ + + for (int freeBusyListSeek = 0; freeBusyListSeek < freeBusyList.size(); + freeBusyListSeek++){ + + dataLine += "FREEBUSY"; + + if (freeBusyListType[freeBusyListSeek].size() > 0){ + + dataLine += ";FBTYPE="; + dataLine += freeBusyListType[freeBusyListSeek]; + + } + + if (freeBusyListTokens[freeBusyListSeek].size() > 0){ + + dataLine += ";"; + dataLine += freeBusyListTokens[freeBusyListSeek]; + + } + + dataLine += ":"; + dataLine += freeBusyList[freeBusyListSeek]; + dataLine += "\n"; + + dataLineProcessed = OutputText(&dataLine); + + *saveData += dataLineProcessed; - DataLine += ":"; - DataLine += DateTimeEndData; - DataLine += "\n"; + dataLine.clear(); + dataLineProcessed.clear(); + + } + + } + + // Process the REQUEST-STATUS value. + + if (requestStatusData.size() > 0){ - DataLineProcessed = OutputText(&DataLine); + for (int requestStatusDataSeek = 0; requestStatusDataSeek < requestStatusData.size(); + requestStatusDataSeek++){ + + dataLine += "REQUEST-STATUS"; + + if (requestStatusLanguage[requestStatusDataSeek].size() > 0){ - *SaveData += DataLineProcessed; + dataLine += ";LANGUAGE="; + dataLine += requestStatusLanguage[requestStatusDataSeek]; + + } + + if (requestStatusTokens[requestStatusDataSeek].size() > 0){ - DataLine.clear(); - DataLineProcessed.clear(); + dataLine += ";"; + dataLine += requestStatusTokens[requestStatusDataSeek]; + + } + + dataLine += ":"; + dataLine += requestStatusData[requestStatusDataSeek]; + dataLine += "\n"; + + dataLineProcessed = OutputText(&dataLine); + *saveData += dataLineProcessed; + + dataLine.clear(); + dataLineProcessed.clear(); + + } + + } + + // 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:VFREEBUSY\n"; + + *saveData += "END:VFREEBUSY\n"; } \ No newline at end of file