Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added code and unit tests for saving CLASS in CalendarEventObject.
[xestiacalendar/.git] / source / objects / calendarevent / CalendarEvent-Save.cpp
1 #include "CalendarEvent.h"
3 using namespace std;
5 void CalendarEventObject::SaveObjectData(string *SaveData){
7         string DataLine = "";
8         string DataLineProcessed = "";
9         
10         *SaveData += "BEGIN:VEVENT\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         }
68         // Process the DTSTART.
69         
70         if (DateTimeStartData.size() > 0){
71                 
72                 DataLine += "DTSTART";
73                 
74                 if (DateTimeStartDataValue.size() > 0){
75                 
76                         DataLine += ";VALUE=";
77                         DataLine += DateTimeStartDataValue;                     
78                         
79                 }
80                 
81                 if (DateTimeStartDataTimeZoneID.size() > 0){
82                 
83                         DataLine += ";TZID=";
84                         DataLine += DateTimeStartDataTimeZoneID;                        
85                         
86                 }
87                 
88                 if (DateTimeStartDataTokens.size() > 0){
89                 
90                         DataLine += ";";
91                         DataLine += DateTimeStartDataTokens;
92                         
93                 }
95                 DataLine += ":";
96                 DataLine += DateTimeStartData;
97                 DataLine += "\n";
98                 
99                 DataLineProcessed = OutputText(&DataLine);
100                 
101                 *SaveData += DataLineProcessed;
102                 
103                 DataLine.clear();
104                 DataLineProcessed.clear();
105                 
106         }
107         
108         // Process the DTEND.
109         
110         if (DateTimeStartData.size() > 0){
111                 
112                 DataLine += "DTEND";
113                 
114                 if (DateTimeStartDataValue.size() > 0){
115                 
116                         DataLine += ";VALUE=";
117                         DataLine += DateTimeStartDataValue;                     
118                         
119                 }
120                 
121                 if (DateTimeStartDataTimeZoneID.size() > 0){
122                 
123                         DataLine += ";TZID=";
124                         DataLine += DateTimeStartDataTimeZoneID;                        
125                         
126                 }
127                 
128                 if (DateTimeStartDataTokens.size() > 0){
129                 
130                         DataLine += ";";
131                         DataLine += DateTimeStartDataTokens;
132                         
133                 }
135                 DataLine += ":";
136                 DataLine += DateTimeStartData;
137                 DataLine += "\n";
138                 
139                 DataLineProcessed = OutputText(&DataLine);
140                 
141                 *SaveData += DataLineProcessed;
142                 
143                 DataLine.clear();
144                 DataLineProcessed.clear();
145                 
146         }
147         
148         // Process the SUMMARY.
149         
150         if (SummaryData.size() > 0){
151                 
152                 DataLine += "SUMMARY";
153                 
154                 if (SummaryDataAltRep.size() > 0){
155                 
156                         DataLine += ";ALTREP=";
157                         DataLine += SummaryDataAltRep;
158                         
159                 }
160                 
161                 if (SummaryDataLanguage.size() > 0){
162                 
163                         DataLine += ";TZID=";
164                         DataLine += SummaryDataLanguage;                        
165                         
166                 }
167                 
168                 if (SummaryDataTokens.size() > 0){
169                 
170                         DataLine += ";";
171                         DataLine += SummaryDataTokens;
172                         
173                 }
174                 
175                 DataLine += ":";
176                 DataLine += SummaryData;
177                 DataLine += "\n";
178                 
179                 DataLineProcessed = OutputText(&DataLine);
180                 
181                 *SaveData += DataLineProcessed;
183                 DataLine.clear();
184                 DataLineProcessed.clear();
185                 
186         }
188         // Process the CLASS.
189         
190         if (ClassData.size() > 0){
191                 
192                 if (ClassDataTokens.size() > 0){
193                 
194                         DataLine += "CLASS;";
195                         DataLine += ClassDataTokens;
196                         
197                 } else {
199                         DataLine += "CLASS";
200                         
201                 }
203                 DataLine += ":";
204                 DataLine += ClassData;
205                 DataLine += "\n";
206                 
207                 DataLineProcessed = OutputText(&DataLine);
208                 
209                 *SaveData += DataLineProcessed;
210                 
211                 DataLine.clear();
212                 DataLineProcessed.clear();
213                 
214         }
215         
216         *SaveData += "END:VEVENT\n";
217         
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