Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added EXDATE 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         // Process the URL value.
589         
590         if (URLData.size() > 0){
591                 
592                 DataLine += "URL";
594                 if (URLDataTokens.size() > 0){
595                 
596                         DataLine += ";";
597                         DataLine += URLDataTokens;
598                         
599                 }
600                 
601                 DataLine += ":";
602                 DataLine += URLData;
603                 DataLine += "\n";
604                 
605                 DataLineProcessed = OutputText(&DataLine);
606                 
607                 *SaveData += DataLineProcessed;
609                 DataLine.clear();
610                 DataLineProcessed.clear();
611                 
612         }
613         
614         // Process the RRULE value.
615         
616         if (RecurranceRuleData.size() > 0){
617                 
618                 DataLine += "RRULE";
620                 if (RecurranceRuleDataTokens.size() > 0){
621                 
622                         DataLine += ";";
623                         DataLine += RecurranceRuleDataTokens;
624                         
625                 }
626                 
627                 DataLine += ":";
628                 DataLine += RecurranceRuleData;
629                 DataLine += "\n";
630                 
631                 DataLineProcessed = OutputText(&DataLine);
632                 
633                 *SaveData += DataLineProcessed;
635                 DataLine.clear();
636                 DataLineProcessed.clear();
637                 
638         }
639         
640         // Process the DUE value.
641         
642         if (DueData.size() > 0){
643                 
644                 DataLine += "DUE";
645                 
646                 if (DueDataTimeZoneID.size() > 0){
647                 
648                         DataLine += ";TZID=";
649                         DataLine += DueDataTimeZoneID;
650                         
651                 }
652                 
653                 if (DueDataValue.size() > 0){
654                 
655                         DataLine += ";VALUE=";
656                         DataLine += DueDataValue;
657                         
658                 }
659                 
660                 if (SummaryDataTokens.size() > 0){
661                 
662                         DataLine += ";";
663                         DataLine += DueDataTokens;
664                         
665                 }
666                 
667                 DataLine += ":";
668                 DataLine += DueData;
669                 DataLine += "\n";
670                 
671                 DataLineProcessed = OutputText(&DataLine);
672                 
673                 *SaveData += DataLineProcessed;
675                 DataLine.clear();
676                 DataLineProcessed.clear();
677                 
678         }
679         
680         // Process the ATTACH values.
681         
682         if (AttachList.size() > 0){
683                 
684                 for (int AttachListSeek = 0; AttachListSeek < AttachList.size();
685                         AttachListSeek++){
686                         
687                         DataLine += "ATTACH";
689                         if (AttachListFormatType[AttachListSeek].size() > 0){
690                 
691                                 DataLine += ";FMTTYPE=";
692                                 DataLine += AttachListFormatType[AttachListSeek];
693                         
694                         }
695                                 
696                         if (AttachListValue[AttachListSeek].size() > 0){
697                 
698                                 DataLine += ";VALUE=";
699                                 DataLine += AttachListValue[AttachListSeek];
700                         
701                         }
702                                 
703                         if (AttachListEncoding[AttachListSeek].size() > 0){
704                 
705                                 DataLine += ";ENCODING=";
706                                 DataLine += AttachListEncoding[AttachListSeek];
707                         
708                         }
709                                 
710                         if (AttachListTokens[AttachListSeek].size() > 0){
711                 
712                                 DataLine += ";";
713                                 DataLine += AttachListTokens[AttachListSeek];
714                         
715                         }
716                 
717                         DataLine += ":";
718                         DataLine += AttachList[AttachListSeek];
719                         DataLine += "\n";
720                 
721                         DataLineProcessed = OutputText(&DataLine);
722                 
723                         *SaveData += DataLineProcessed;
725                         DataLine.clear();
726                         DataLineProcessed.clear();
727                                 
728                 }
729                 
730         }
731         
732         // Process the ATTENDEE value.
733         
734         if (AttendeeList.size() > 0){
735                 
736                 for (int AttendeeListSeek = 0; AttendeeListSeek < AttendeeList.size();
737                         AttendeeListSeek++){
738         
739                         DataLine += "ATTENDEE";
741                         if (AttendeeListMember[AttendeeListSeek].size() > 0){
742                 
743                                 DataLine += ";MEMBER=\"";
744                                 DataLine += AttendeeListMember[AttendeeListSeek];
745                                 DataLine += "\"";
746                         
747                         }
748                                 
749                         if (AttendeeListDelegatedFrom[AttendeeListSeek].size() > 0){
750                 
751                                 DataLine += ";DELEGATED-FROM=\"";
752                                 DataLine += AttendeeListDelegatedFrom[AttendeeListSeek];
753                                 DataLine += "\"";
754                         
755                         }
757                         if (AttendeeListDelegatedTo[AttendeeListSeek].size() > 0){
758                 
759                                 DataLine += ";DELEGATED-TO=\"";
760                                 DataLine += AttendeeListDelegatedTo[AttendeeListSeek];
761                                 DataLine += "\"";
762                         
763                         }
765                         if (AttendeeListRole[AttendeeListSeek].size() > 0){
766                 
767                                 DataLine += ";ROLE=";
768                                 DataLine += AttendeeListRole[AttendeeListSeek];
769                         
770                         }
771                         
772                         if (AttendeeListRSVP[AttendeeListSeek].size() > 0){
773                 
774                                 DataLine += ";RSVP=";
775                                 DataLine += AttendeeListRSVP[AttendeeListSeek];
776                         
777                         }
778                         
779                         if (AttendeeListDirectoryEntry[AttendeeListSeek].size() > 0){
780                 
781                                 DataLine += ";DIR=\"";
782                                 DataLine += AttendeeListDirectoryEntry[AttendeeListSeek];
783                                 DataLine += "\"";
784                         
785                         }
786                         
787                         if (AttendeeListSentBy[AttendeeListSeek].size() > 0){
788                                 
789                                 DataLine += ";SENT-BY=\"";
790                                 DataLine += AttendeeListSentBy[AttendeeListSeek];
791                                 DataLine += "\"";
792                                 
793                         }
795                         if (AttendeeListCommonName[AttendeeListSeek].size() > 0){
796                                 
797                                 DataLine += ";CN=\"";
798                                 DataLine += AttendeeListCommonName[AttendeeListSeek];
799                                 DataLine += "\"";
800                                 
801                         }
803                         if (AttendeeListCalendarUserType[AttendeeListSeek].size() > 0){
804                                 
805                                 DataLine += ";CUTYPE=";
806                                 DataLine += AttendeeListCalendarUserType[AttendeeListSeek];
807                                 
808                         }
809                         
810                         if (AttendeeListParticipationStatus[AttendeeListSeek].size() > 0){
811                                 
812                                 DataLine += ";PARTSTAT=";
813                                 DataLine += AttendeeListParticipationStatus[AttendeeListSeek];
814                                 
815                         }
816                         
817                         if (AttendeeListLanguage[AttendeeListSeek].size() > 0){
818                                 
819                                 DataLine += ";LANGUAGE=";
820                                 DataLine += AttendeeListLanguage[AttendeeListSeek];
821                                 
822                         }
823                         
824                         if (AttendeeListTokens[AttendeeListSeek].size() > 0){
825                 
826                                 DataLine += ";";
827                                 DataLine += AttendeeListTokens[AttendeeListSeek];
828                         
829                         }
830                                 
831                         DataLine += ":";
832                         DataLine += AttendeeList[AttendeeListSeek];
833                         DataLine += "\n";
834                 
835                         DataLineProcessed = OutputText(&DataLine);
836                 
837                         *SaveData += DataLineProcessed;
839                         DataLine.clear();
840                         DataLineProcessed.clear();
841                                 
842                 }
843                         
844         }
845         
846         // Process the CATEGORIES value.
847         
848         if (CategoriesList.size() > 0){
849                 
850                 for (int CategoriesListSeek = 0; CategoriesListSeek < CategoriesList.size();
851                         CategoriesListSeek++){
852         
853                         DataLine += "CATEGORIES";
854                                 
855                         if (CategoriesListLanguage[CategoriesListSeek].size() > 0){
856                 
857                                 DataLine += ";LANGUAGE=";
858                                 DataLine += CategoriesListLanguage[CategoriesListSeek];
859                         
860                         }                       
861                         
862                         if (CategoriesListTokens[CategoriesListSeek].size() > 0){
863                 
864                                 DataLine += ";";
865                                 DataLine += CategoriesListTokens[CategoriesListSeek];
866                         
867                         }
868                                 
869                         DataLine += ":";
870                         DataLine += CategoriesList[CategoriesListSeek];
871                         DataLine += "\n";
872                 
873                         DataLineProcessed = OutputText(&DataLine);
874                 
875                         *SaveData += DataLineProcessed;
877                         DataLine.clear();
878                         DataLineProcessed.clear();
879                                 
880                 }
881                 
882         }
883         
884         // Process the COMMENT value.
885         
886         if (CommentList.size() > 0){
887                 
888                 for (int CommentListSeek = 0; CommentListSeek < CommentList.size();
889                         CommentListSeek++){
890         
891                         DataLine += "COMMENT";
892                         
893                         if (CommentListAltRep[CommentListSeek].size() > 0){
894                 
895                                 DataLine += ";ALTREP=\"";
896                                 DataLine += CommentListAltRep[CommentListSeek];
897                                 DataLine += "\"";
898                         
899                         }
900                                 
901                         if (CommentListLanguage[CommentListSeek].size() > 0){
902                 
903                                 DataLine += ";LANGUAGE=";
904                                 DataLine += CommentListLanguage[CommentListSeek];
905                         
906                         }
907                         
908                         if (CommentListTokens[CommentListSeek].size() > 0){
909                 
910                                 DataLine += ";";
911                                 DataLine += CommentListTokens[CommentListSeek];
912                         
913                         }
914                                 
915                         DataLine += ":";
916                         DataLine += CommentList[CommentListSeek];
917                         DataLine += "\n";
918                 
919                         DataLineProcessed = OutputText(&DataLine);
920                 
921                         *SaveData += DataLineProcessed;
923                         DataLine.clear();
924                         DataLineProcessed.clear();
925                                 
926                 }
927                 
928         }
929         
930         // Process the CONTACT value.
931         
932         if (ContactList.size() > 0){
933                 
934                 for (int ContactListSeek = 0; ContactListSeek < ContactList.size();
935                         ContactListSeek++){
936         
937                         DataLine += "CONTACT";
938                         
939                         if (ContactListAltRep[ContactListSeek].size() > 0){
940                 
941                                 DataLine += ";ALTREP=\"";
942                                 DataLine += ContactListAltRep[ContactListSeek];
943                                 DataLine += "\"";
944                         
945                         }
946                                 
947                         if (ContactListLanguage[ContactListSeek].size() > 0){
948                 
949                                 DataLine += ";LANGUAGE=";
950                                 DataLine += ContactListLanguage[ContactListSeek];
951                         
952                         }
953                         
954                         if (ContactListTokens[ContactListSeek].size() > 0){
955                 
956                                 DataLine += ";";
957                                 DataLine += ContactListTokens[ContactListSeek];
958                         
959                         }
960                                 
961                         DataLine += ":";
962                         DataLine += ContactList[ContactListSeek];
963                         DataLine += "\n";
964                 
965                         DataLineProcessed = OutputText(&DataLine);
966                 
967                         *SaveData += DataLineProcessed;
969                         DataLine.clear();
970                         DataLineProcessed.clear();
971                                 
972                 }
973                 
974         }
975         
976         // Process the EXDATE value.
977         
978         if (ExcludeDateData.size() > 0){
979                 
980                 for (int ExcludeDateDataSeek = 0; ExcludeDateDataSeek < ExcludeDateData.size();
981                         ExcludeDateDataSeek++){
982         
983                         DataLine += "EXDATE";
984                                 
985                         if (ExcludeDateDataTimeZoneParam[ExcludeDateDataSeek].size() > 0){
986                 
987                                 DataLine += ";TZID=";
988                                 DataLine += ExcludeDateDataTimeZoneParam[ExcludeDateDataSeek];
989                         
990                         }
991                         
992                         if (ExcludeDateDataValue[ExcludeDateDataSeek].size() > 0){
993                 
994                                 DataLine += ";VALUE=";
995                                 DataLine += ExcludeDateDataValue[ExcludeDateDataSeek];
996                         
997                         }
998                         
999                         if (ExcludeDateDataTokens[ExcludeDateDataSeek].size() > 0){
1000                 
1001                                 DataLine += ";";
1002                                 DataLine += ExcludeDateDataTokens[ExcludeDateDataSeek];
1003                         
1004                         }
1005                                 
1006                         DataLine += ":";
1007                         DataLine += ExcludeDateData[ExcludeDateDataSeek];
1008                         DataLine += "\n";
1009                 
1010                         DataLineProcessed = OutputText(&DataLine);
1011                 
1012                         *SaveData += DataLineProcessed;
1014                         DataLine.clear();
1015                         DataLineProcessed.clear();
1016                                 
1017                 }
1018                 
1019         }
1020         *SaveData += "END:VTODO\n";
1021         
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