+// 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 <http://www.gnu.org/licenses/>
+
#include "CalendarFreeBusy.h"
using namespace std;
}
+ // 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 DTEND.
+
+ 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 += ";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 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 += ";";
+ 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){
+
+ 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 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.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 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";
}
\ No newline at end of file