Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added SUMMARY property for saving data from a CalendarTaskObject.
[xestiacalendar/.git] / source / objects / calendartask / CalendarTask-Save.cpp
1 #include "CalendarTask.h"
3 using namespace std;
5 void CalendarTaskObject::SaveObjectData(string *SaveData){
7         string DataLine = "";
8         string DataLineProcessed = "";
9         
10         *SaveData += "BEGIN:VTODO\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 CLASS value.
69         
70         if (ClassData.size() > 0){
71                 
72                 if (ClassDataTokens.size() > 0){
73                 
74                         DataLine += "CLASS;";
75                         DataLine += ClassDataTokens;
76                         
77                 } else {
79                         DataLine += "CLASS";
80                         
81                 }
83                 DataLine += ":";
84                 DataLine += ClassData;
85                 DataLine += "\n";
86                 
87                 DataLineProcessed = OutputText(&DataLine);
88                 
89                 *SaveData += DataLineProcessed;
90                 
91                 DataLine.clear();
92                 DataLineProcessed.clear();
93                 
94         }
95         
96         // Process the COMPLETED value.
97         
98         if (CompletedData.size() > 0){
99                 
100                 if (CompletedDataTokens.size() > 0){
101                 
102                         DataLine += "COMPLETED;";
103                         DataLine += CompletedDataTokens;
104                         
105                 } else {
107                         DataLine += "COMPLETED";
108                         
109                 }
111                 DataLine += ":";
112                 DataLine += CompletedData;
113                 DataLine += "\n";
114                 
115                 DataLineProcessed = OutputText(&DataLine);
116                 
117                 *SaveData += DataLineProcessed;
118                 
119                 DataLine.clear();
120                 DataLineProcessed.clear();
121                 
122         }
124         // Process the CREATED value.
125         
126         if (DateTimeCreatedData.size() > 0){
127                 
128                 if (DateTimeCreatedTokens.size() > 0){
129                 
130                         DataLine += "CREATED;";
131                         DataLine += DateTimeCreatedTokens;
132                         
133                 } else {
135                         DataLine += "CREATED";
136                         
137                 }
139                 DataLine += ":";
140                 DataLine += DateTimeCreatedData;
141                 DataLine += "\n";
142                 
143                 DataLineProcessed = OutputText(&DataLine);
144                 
145                 *SaveData += DataLineProcessed;
146                 
147                 DataLine.clear();
148                 DataLineProcessed.clear();
149                 
150         }
151         
152         // Process the DESCRIPTION values. Write out the
153         // first DESCRPITION only as per RFC5545 specifcation.
154         
155         if (DescriptionList.size() > 0){
156                 
157                 DataLine += "DESCRIPTION";
158                 
159                 if (DescriptionListAltRep[0].size() > 0){
160                 
161                         DataLine += ";ALTREP=\"";
162                         DataLine += DescriptionListAltRep[0];
163                         DataLine += "\"";
164                         
165                 }
166                 
167                 if (DescriptionListLanguage[0].size() > 0){
168                 
169                         DataLine += ";LANGUAGE=";
170                         DataLine += DescriptionListLanguage[0];
171                         
172                 }
173                 
174                 if (DescriptionListTokens[0].size() > 0){
175                 
176                         DataLine += ";";
177                         DataLine += DescriptionListTokens[0];
178                         
179                 }
181                 DataLine += ":";
182                 DataLine += DescriptionList[0];
183                 DataLine += "\n";
184                 
185                 DataLineProcessed = OutputText(&DataLine);
186                 
187                 *SaveData += DataLineProcessed;
188                 
189                 DataLine.clear();
190                 DataLineProcessed.clear();
191                 
192         }
193         
194         // Process the DTSTART.
195         
196         if (DateTimeStartData.size() > 0){
197                 
198                 DataLine += "DTSTART";
199                 
200                 if (DateTimeStartDataValue.size() > 0){
201                 
202                         DataLine += ";VALUE=";
203                         DataLine += DateTimeStartDataValue;                     
204                         
205                 }
206                 
207                 if (DateTimeStartDataTimeZoneID.size() > 0){
208                 
209                         DataLine += ";TZID=";
210                         DataLine += DateTimeStartDataTimeZoneID;                        
211                         
212                 }
213                 
214                 if (DateTimeStartDataTokens.size() > 0){
215                 
216                         DataLine += ";";
217                         DataLine += DateTimeStartDataTokens;
218                         
219                 }
221                 DataLine += ":";
222                 DataLine += DateTimeStartData;
223                 DataLine += "\n";
224                 
225                 DataLineProcessed = OutputText(&DataLine);
226                 
227                 *SaveData += DataLineProcessed;
228                 
229                 DataLine.clear();
230                 DataLineProcessed.clear();
231                 
232         }
233         
234         // Process the GEO value.
235         
236         if (GeographicData.size() > 0){
237                 
238                 if (GeographicTokens.size() > 0){
239                 
240                         DataLine += "GEO;";
241                         DataLine += GeographicTokens;
242                         
243                 } else {
245                         DataLine += "GEO";
246                         
247                 }
249                 DataLine += ":";
250                 DataLine += GeographicData;
251                 DataLine += "\n";
252                 
253                 DataLineProcessed = OutputText(&DataLine);
254                 
255                 *SaveData += DataLineProcessed;
256                 
257                 DataLine.clear();
258                 DataLineProcessed.clear();
259                 
260         }
261         
262         // Process the LAST-MODIFIED value.
263         
264         if (LastModifiedData.size() > 0){
265                 
266                 if (LastModifiedTokens.size() > 0){
267                 
268                         DataLine += "LAST-MODIFIED;";
269                         DataLine += LastModifiedTokens;
270                         
271                 } else {
273                         DataLine += "LAST-MODIFIED";
274                         
275                 }
277                 DataLine += ":";
278                 DataLine += LastModifiedData;
279                 DataLine += "\n";
280                 
281                 DataLineProcessed = OutputText(&DataLine);
282                 
283                 *SaveData += DataLineProcessed;
284                 
285                 DataLine.clear();
286                 DataLineProcessed.clear();
287                 
288         }
289         
290         // Process the LOCATION value.
292         if (LocationData.size() > 0){
293                 
294                 DataLine += "LOCATION";
295                 
296                 if (LocationDataAltRep.size() > 0){
297                 
298                         DataLine += ";ALTREP=\"";
299                         DataLine += LocationDataAltRep;
300                         DataLine += "\"";
301                         
302                 }
303                 
304                 if (LocationDataLanguage.size() > 0){
305                 
306                         DataLine += ";LANGUAGE=";
307                         DataLine += LocationDataLanguage;                       
308                         
309                 }
310                 
311                 if (LocationDataTokens.size() > 0){
312                 
313                         DataLine += ";";
314                         DataLine += LocationDataTokens;
315                         
316                 }
317                 
318                 DataLine += ":";
319                 DataLine += LocationData;
320                 DataLine += "\n";
321                 
322                 DataLineProcessed = OutputText(&DataLine);
323                 
324                 *SaveData += DataLineProcessed;
326                 DataLine.clear();
327                 DataLineProcessed.clear();
328                 
329         }
330         
331         // Process the ORGANIZER value.
332         
333         if (OrganiserData.size() > 0){
334                 
335                 DataLine += "ORGANIZER";
336                 
337                 if (OrganiserDataCommonName.size() > 0){
338                 
339                         DataLine += ";CN=";
340                         DataLine += OrganiserDataCommonName;
341                         
342                 }
344                 if (OrganiserDataDirectoryEntry.size() > 0){
345                 
346                         DataLine += ";DIR=\"";
347                         DataLine += OrganiserDataDirectoryEntry;
348                         DataLine += "\"";
349                         
350                 }
351                 
352                 if (OrganiserDataSentByParam.size() > 0){
353                 
354                         DataLine += ";SENT-BY=\"";
355                         DataLine += OrganiserDataSentByParam;                   
356                         DataLine += "\"";
357                         
358                 }
359                 
360                 if (OrganiserDataLanguage.size() > 0){
361                 
362                         DataLine += ";LANGUAGE=";
363                         DataLine += OrganiserDataLanguage;                      
364                         
365                 }
366                 
367                 if (OrganiserDataTokens.size() > 0){
368                 
369                         DataLine += ";";
370                         DataLine += OrganiserDataTokens;
371                         
372                 }
373                 
374                 DataLine += ":";
375                 DataLine += OrganiserData;
376                 DataLine += "\n";
377                 
378                 DataLineProcessed = OutputText(&DataLine);
379                 
380                 *SaveData += DataLineProcessed;
382                 DataLine.clear();
383                 DataLineProcessed.clear();
384                 
385         }
386         
387         // Process the PERCENT-COMPLETE value.
388         
389         if (PercentCompleteData.size() > 0){
390                 
391                 if (PercentCompleteTokens.size() > 0){
392                 
393                         DataLine += "PERCENT-COMPLETE;";
394                         DataLine += PercentCompleteTokens;
395                         
396                 } else {
398                         DataLine += "PERCENT-COMPLETE";
399                         
400                 }
402                 DataLine += ":";
403                 DataLine += PercentCompleteData;
404                 DataLine += "\n";
405                 
406                 DataLineProcessed = OutputText(&DataLine);
407                 
408                 *SaveData += DataLineProcessed;
409                 
410                 DataLine.clear();
411                 DataLineProcessed.clear();
412                 
413         }
414         
415         // Process the PRIORITY value.
416         
417         if (PriorityData > -1 && PriorityData < 10){
418                 
419                 DataLine += "PRIORITY";
420                 
421                 if (PriorityTokens.size() > 0){
422                 
423                         DataLine += ";";
424                         DataLine += PriorityTokens;
425                         
426                 }
427                 
428                 DataLine += ":";
429                 DataLine += to_string(PriorityData);
430                 DataLine += "\n";
431                 
432                 DataLineProcessed = OutputText(&DataLine);
433                 
434                 *SaveData += DataLineProcessed;
436                 DataLine.clear();
437                 DataLineProcessed.clear();
438                 
439         }
440         
441         // Process the RECURRENCE-ID value.
442         
443         if (RecurranceIDData.size() > 0){
444                 
445                 DataLine += "RECURRENCE-ID";
447                 if (RecurranceIDDataTimeZoneParam.size() > 0){
448                 
449                         DataLine += ";TZID=";
450                         DataLine += RecurranceIDDataTimeZoneParam;                      
451                         
452                 }
453                 
454                 if (RecurranceIDDataRangeParam.size() > 0){
455                 
456                         DataLine += ";RANGE=";
457                         DataLine += RecurranceIDDataRangeParam;                 
458                         
459                 }
460                 
461                 if (RecurranceIDDataValue.size() > 0){
462                 
463                         DataLine += ";VALUE=";
464                         DataLine += RecurranceIDDataValue;                      
465                         
466                 }
467                 
468                 if (RecurranceIDDataTokens.size() > 0){
469                 
470                         DataLine += ";";
471                         DataLine += RecurranceIDDataTokens;
472                         
473                 }
474                 
475                 DataLine += ":";
476                 DataLine += RecurranceIDData;
477                 DataLine += "\n";
478                 
479                 DataLineProcessed = OutputText(&DataLine);
480                 
481                 *SaveData += DataLineProcessed;
483                 DataLine.clear();
484                 DataLineProcessed.clear();
485                 
486         }
487         
488         // Process the SEQUENCE value.
489         
490         if (SequenceData > -1 && SequenceData < 10){
491                 
492                 DataLine += "SEQUENCE";
493                 
494                 if (SequenceTokens.size() > 0){
495                 
496                         DataLine += ";";
497                         DataLine += SequenceTokens;
498                         
499                 }
500                 
501                 DataLine += ":";
502                 DataLine += to_string(SequenceData);
503                 DataLine += "\n";
504                 
505                 DataLineProcessed = OutputText(&DataLine);
506                 
507                 *SaveData += DataLineProcessed;
509                 DataLine.clear();
510                 DataLineProcessed.clear();
511                 
512         }
513         
514         // Process the STATUS value.
515         
516         if (StatusData.size() > 0){
517                 
518                 DataLine += "STATUS";
519                 
520                 if (StatusLanguage.size() > 0){
521                 
522                         DataLine += ";LANGUAGE=";
523                         DataLine += StatusLanguage;                     
524                         
525                 }
526                 
527                 if (StatusTokens.size() > 0){
528                 
529                         DataLine += ";";
530                         DataLine += StatusTokens;
531                         
532                 }
533                 
534                 DataLine += ":";
535                 DataLine += StatusData;
536                 DataLine += "\n";
537                 
538                 DataLineProcessed = OutputText(&DataLine);
539                 
540                 *SaveData += DataLineProcessed;
542                 DataLine.clear();
543                 DataLineProcessed.clear();
544                 
545         }
546         
547         // Process the SUMMARY.
548         
549         if (SummaryData.size() > 0){
550                 
551                 DataLine += "SUMMARY";
552                 
553                 if (SummaryDataAltRep.size() > 0){
554                 
555                         DataLine += ";ALTREP=\"";
556                         DataLine += SummaryDataAltRep;
557                         DataLine += "\"";
558                         
559                 }
560                 
561                 if (SummaryDataLanguage.size() > 0){
562                 
563                         DataLine += ";LANGUAGE=";
564                         DataLine += SummaryDataLanguage;                        
565                         
566                 }
567                 
568                 if (SummaryDataTokens.size() > 0){
569                 
570                         DataLine += ";";
571                         DataLine += SummaryDataTokens;
572                         
573                 }
574                 
575                 DataLine += ":";
576                 DataLine += SummaryData;
577                 DataLine += "\n";
578                 
579                 DataLineProcessed = OutputText(&DataLine);
580                 
581                 *SaveData += DataLineProcessed;
583                 DataLine.clear();
584                 DataLineProcessed.clear();
585                 
586         }
587         
588         *SaveData += "END:VTODO\n";
589         
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