Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added LAST-MODIFIED 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         *SaveData += "END:VTODO\n";
291         
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