Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added FREEBUSY property for saving data from a CalendarFreeBusyObject.
[xestiacalendar/.git] / source / objects / calendarfreebusy / CalendarFreeBusy-Save.cpp
1 #include "CalendarFreeBusy.h"
3 using namespace std;
5 void CalendarFreeBusyObject::SaveObjectData(string *SaveData){
7         string DataLine = "";
8         string DataLineProcessed = "";
9         
10         *SaveData += "BEGIN:VFREEBUSY\n";
11         
12         // Process the UID.
13         
14         if (UniqueID.size() > 0){
15                 
16                 if (UniqueIDTokens.size() > 0){
17                 
18                         DataLine += "UID;";
19                         DataLine += UniqueIDTokens;
20                         
21                 } else {
23                         DataLine += "UID";
24                         
25                 }
27                 DataLine += ":";
28                 DataLine += UniqueID;
29                 DataLine += "\n";
30                 
31                 DataLineProcessed = OutputText(&DataLine);
32                 
33                 *SaveData += DataLineProcessed;
34                 
35                 DataLine.clear();
36                 DataLineProcessed.clear();
37                 
38         }
39         
40         // Process the DTSTAMP.
41         
42         if (DateTimeStampData.size() > 0){
43                 
44                 if (DateTimeStampTokens.size() > 0){
45                 
46                         DataLine += "DTSTAMP;";
47                         DataLine += DateTimeStampTokens;
48                         
49                 } else {
51                         DataLine += "DTSTAMP";
52                         
53                 }
55                 DataLine += ":";
56                 DataLine += DateTimeStampData;
57                 DataLine += "\n";
58                 
59                 DataLineProcessed = OutputText(&DataLine);
60                 
61                 *SaveData += DataLineProcessed;
62                 
63                 DataLine.clear();
64                 DataLineProcessed.clear();
65                 
66         }
67         
68         // Process the CONTACT value.
69         
70         if (ContactList.size() > 0){
71                 
72                 if (ContactList[0].size() > 0){
73                 
74                         DataLine += "CONTACT";
75                 
76                         if (ContactListAltRep[0].size() > 0){
77                 
78                                 DataLine += ";ALTREP=\"";
79                                 DataLine += ContactListAltRep[0];
80                                 DataLine += "\"";
81                         
82                         }
83                 
84                         if (ContactListLanguage[0].size() > 0){
85                 
86                                 DataLine += ";LANGUAGE=";
87                                 DataLine += ContactListLanguage[0];
88                         
89                         }
90                 
91                         if (ContactListTokens[0].size() > 0){
92                 
93                                 DataLine += ";";
94                                 DataLine += ContactListTokens[0];
95                         
96                         }
97                 
98                         DataLine += ":";
99                         DataLine += ContactList[0];
100                         DataLine += "\n";
101                 
102                         DataLineProcessed = OutputText(&DataLine);
103                 
104                         *SaveData += DataLineProcessed;
106                         DataLine.clear();
107                         DataLineProcessed.clear();
108                 
109                 }
110                 
111         }
112         
113         // Process the DTSTART.
114         
115         if (DateTimeStartData.size() > 0){
116                 
117                 DataLine += "DTSTART";
118                 
119                 if (DateTimeStartDataValue.size() > 0){
120                 
121                         DataLine += ";VALUE=";
122                         DataLine += DateTimeStartDataValue;                     
123                         
124                 }
125                 
126                 if (DateTimeStartDataTimeZoneID.size() > 0){
127                 
128                         DataLine += ";TZID=";
129                         DataLine += DateTimeStartDataTimeZoneID;                        
130                         
131                 }
132                 
133                 if (DateTimeStartDataTokens.size() > 0){
134                 
135                         DataLine += ";";
136                         DataLine += DateTimeStartDataTokens;
137                         
138                 }
140                 DataLine += ":";
141                 DataLine += DateTimeStartData;
142                 DataLine += "\n";
143                 
144                 DataLineProcessed = OutputText(&DataLine);
145                 
146                 *SaveData += DataLineProcessed;
147                 
148                 DataLine.clear();
149                 DataLineProcessed.clear();
150                 
151         }
152         
153         // Process the DTEND.
154         
155         if (DateTimeEndData.size() > 0){
156                 
157                 DataLine += "DTEND";
158                 
159                 if (DateTimeEndDataValue.size() > 0){
160                 
161                         DataLine += ";VALUE=";
162                         DataLine += DateTimeEndDataValue;                       
163                         
164                 }
165                 
166                 if (DateTimeEndDataTimeZoneID.size() > 0){
167                 
168                         DataLine += ";TZID=";
169                         DataLine += DateTimeEndDataTimeZoneID;                  
170                         
171                 }
172                 
173                 if (DateTimeEndDataTokens.size() > 0){
174                 
175                         DataLine += ";";
176                         DataLine += DateTimeEndDataTokens;
177                         
178                 }
180                 DataLine += ":";
181                 DataLine += DateTimeEndData;
182                 DataLine += "\n";
183                 
184                 DataLineProcessed = OutputText(&DataLine);
185                 
186                 *SaveData += DataLineProcessed;
187                 
188                 DataLine.clear();
189                 DataLineProcessed.clear();
190                 
191         }
192         
193         // Process the ORGANIZER value.
194         
195         if (OrganiserData.size() > 0){
196                 
197                 DataLine += "ORGANIZER";
198                 
199                 if (OrganiserDataCommonName.size() > 0){
200                 
201                         DataLine += ";CN=";
202                         DataLine += OrganiserDataCommonName;
203                         
204                 }
206                 if (OrganiserDataDirectoryEntry.size() > 0){
207                 
208                         DataLine += ";DIR=\"";
209                         DataLine += OrganiserDataDirectoryEntry;
210                         DataLine += "\"";
211                         
212                 }
213                 
214                 if (OrganiserDataSentByParam.size() > 0){
215                 
216                         DataLine += ";SENT-BY=\"";
217                         DataLine += OrganiserDataSentByParam;                   
218                         DataLine += "\"";
219                         
220                 }
221                 
222                 if (OrganiserDataLanguage.size() > 0){
223                 
224                         DataLine += ";LANGUAGE=";
225                         DataLine += OrganiserDataLanguage;                      
226                         
227                 }
228                 
229                 if (OrganiserDataTokens.size() > 0){
230                 
231                         DataLine += ";";
232                         DataLine += OrganiserDataTokens;
233                         
234                 }
235                 
236                 DataLine += ":";
237                 DataLine += OrganiserData;
238                 DataLine += "\n";
239                 
240                 DataLineProcessed = OutputText(&DataLine);
241                 
242                 *SaveData += DataLineProcessed;
244                 DataLine.clear();
245                 DataLineProcessed.clear();
246                 
247         }
248         
249         // Process the URL value.
250         
251         if (URLData.size() > 0){
252                 
253                 DataLine += "URL";
255                 if (URLDataTokens.size() > 0){
256                 
257                         DataLine += ";";
258                         DataLine += URLDataTokens;
259                         
260                 }
261                 
262                 DataLine += ":";
263                 DataLine += URLData;
264                 DataLine += "\n";
265                 
266                 DataLineProcessed = OutputText(&DataLine);
267                 
268                 *SaveData += DataLineProcessed;
270                 DataLine.clear();
271                 DataLineProcessed.clear();
272                 
273         }
274         
275         // Process the ATTENDEE value.
276         
277         if (AttendeeList.size() > 0){
278                 
279                 for (int AttendeeListSeek = 0; AttendeeListSeek < AttendeeList.size();
280                         AttendeeListSeek++){
281         
282                         DataLine += "ATTENDEE";
284                         if (AttendeeListMember[AttendeeListSeek].size() > 0){
285                 
286                                 DataLine += ";MEMBER=\"";
287                                 DataLine += AttendeeListMember[AttendeeListSeek];
288                                 DataLine += "\"";
289                         
290                         }
291                                 
292                         if (AttendeeListDelegatedFrom[AttendeeListSeek].size() > 0){
293                 
294                                 DataLine += ";DELEGATED-FROM=\"";
295                                 DataLine += AttendeeListDelegatedFrom[AttendeeListSeek];
296                                 DataLine += "\"";
297                         
298                         }
300                         if (AttendeeListDelegatedTo[AttendeeListSeek].size() > 0){
301                 
302                                 DataLine += ";DELEGATED-TO=\"";
303                                 DataLine += AttendeeListDelegatedTo[AttendeeListSeek];
304                                 DataLine += "\"";
305                         
306                         }
308                         if (AttendeeListRole[AttendeeListSeek].size() > 0){
309                 
310                                 DataLine += ";ROLE=";
311                                 DataLine += AttendeeListRole[AttendeeListSeek];
312                         
313                         }
314                         
315                         if (AttendeeListRSVP[AttendeeListSeek].size() > 0){
316                 
317                                 DataLine += ";RSVP=";
318                                 DataLine += AttendeeListRSVP[AttendeeListSeek];
319                         
320                         }
321                         
322                         if (AttendeeListDirectoryEntry[AttendeeListSeek].size() > 0){
323                 
324                                 DataLine += ";DIR=\"";
325                                 DataLine += AttendeeListDirectoryEntry[AttendeeListSeek];
326                                 DataLine += "\"";
327                         
328                         }
329                         
330                         if (AttendeeListSentBy[AttendeeListSeek].size() > 0){
331                                 
332                                 DataLine += ";SENT-BY=\"";
333                                 DataLine += AttendeeListSentBy[AttendeeListSeek];
334                                 DataLine += "\"";
335                                 
336                         }
338                         if (AttendeeListCommonName[AttendeeListSeek].size() > 0){
339                                 
340                                 DataLine += ";CN=\"";
341                                 DataLine += AttendeeListCommonName[AttendeeListSeek];
342                                 DataLine += "\"";
343                                 
344                         }
346                         if (AttendeeListCalendarUserType[AttendeeListSeek].size() > 0){
347                                 
348                                 DataLine += ";CUTYPE=";
349                                 DataLine += AttendeeListCalendarUserType[AttendeeListSeek];
350                                 
351                         }
352                         
353                         if (AttendeeListParticipationStatus[AttendeeListSeek].size() > 0){
354                                 
355                                 DataLine += ";PARTSTAT=";
356                                 DataLine += AttendeeListParticipationStatus[AttendeeListSeek];
357                                 
358                         }
359                         
360                         if (AttendeeListLanguage[AttendeeListSeek].size() > 0){
361                                 
362                                 DataLine += ";LANGUAGE=";
363                                 DataLine += AttendeeListLanguage[AttendeeListSeek];
364                                 
365                         }
366                         
367                         if (AttendeeListTokens[AttendeeListSeek].size() > 0){
368                 
369                                 DataLine += ";";
370                                 DataLine += AttendeeListTokens[AttendeeListSeek];
371                         
372                         }
373                                 
374                         DataLine += ":";
375                         DataLine += AttendeeList[AttendeeListSeek];
376                         DataLine += "\n";
377                 
378                         DataLineProcessed = OutputText(&DataLine);
379                 
380                         *SaveData += DataLineProcessed;
382                         DataLine.clear();
383                         DataLineProcessed.clear();
384                                 
385                 }
386                         
387         }
388         
389         // Process the COMMENT value.
390         
391         if (CommentList.size() > 0){
392                 
393                 for (int CommentListSeek = 0; CommentListSeek < CommentList.size();
394                         CommentListSeek++){
395         
396                         DataLine += "COMMENT";
397                         
398                         if (CommentListAltRep[CommentListSeek].size() > 0){
399                 
400                                 DataLine += ";ALTREP=\"";
401                                 DataLine += CommentListAltRep[CommentListSeek];
402                                 DataLine += "\"";
403                         
404                         }
405                                 
406                         if (CommentListLanguage[CommentListSeek].size() > 0){
407                 
408                                 DataLine += ";LANGUAGE=";
409                                 DataLine += CommentListLanguage[CommentListSeek];
410                         
411                         }
412                         
413                         if (CommentListTokens[CommentListSeek].size() > 0){
414                 
415                                 DataLine += ";";
416                                 DataLine += CommentListTokens[CommentListSeek];
417                         
418                         }
419                                 
420                         DataLine += ":";
421                         DataLine += CommentList[CommentListSeek];
422                         DataLine += "\n";
423                 
424                         DataLineProcessed = OutputText(&DataLine);
425                 
426                         *SaveData += DataLineProcessed;
428                         DataLine.clear();
429                         DataLineProcessed.clear();
430                                 
431                 }
432                 
433         }
434         
435         // Process the FREEBUSY value.
436         
437         if (FreeBusyList.size() > 0){
438                 
439                 for (int FreeBusyListSeek = 0; FreeBusyListSeek < FreeBusyList.size();
440                         FreeBusyListSeek++){
441         
442                         DataLine += "FREEBUSY";
443                         
444                         if (FreeBusyListType[FreeBusyListSeek].size() > 0){
445                 
446                                 DataLine += ";FBTYPE=";
447                                 DataLine += FreeBusyListType[FreeBusyListSeek];
448                         
449                         }
450                         
451                         if (FreeBusyListTokens[FreeBusyListSeek].size() > 0){
452                 
453                                 DataLine += ";";
454                                 DataLine += FreeBusyListTokens[FreeBusyListSeek];
455                         
456                         }
457                                 
458                         DataLine += ":";
459                         DataLine += FreeBusyList[FreeBusyListSeek];
460                         DataLine += "\n";
461                 
462                         DataLineProcessed = OutputText(&DataLine);
463                 
464                         *SaveData += DataLineProcessed;
466                         DataLine.clear();
467                         DataLineProcessed.clear();
468                                 
469                 }
470                 
471         }
472         
473         *SaveData += "END:VFREEBUSY\n";
474         
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy