X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fobjects%2Fcalendarevent%2FCalendarEvent.cpp;h=f737cc104e0fae217d764e7c22a75a7722bd59a6;hb=679177e983e748ab33ff6361dab881d3546d9948;hp=ee003f93f1e72e7558b05449bb88505452f7429c;hpb=ad94c9c170df05dbdb00af6773052227327dd3c1;p=xestiacalendar%2F.git diff --git a/source/objects/calendarevent/CalendarEvent.cpp b/source/objects/calendarevent/CalendarEvent.cpp index ee003f9..f737cc1 100644 --- a/source/objects/calendarevent/CalendarEvent.cpp +++ b/source/objects/calendarevent/CalendarEvent.cpp @@ -8,6 +8,7 @@ CalendarObjectValidResult CalendarEventObject::ValidObject(){ bool ValidEnd = false; bool ValidDateTimeStamp = false; bool ValidUniqueID = false; + bool ValidDateTimeStart = false; int SeekCount = 0; string PropertyName; @@ -99,6 +100,41 @@ CalendarObjectValidResult CalendarEventObject::ValidObject(){ SeekCount = 0; + // Look for DTSTART if nothing is set for METHOD.. + + if (MethodData.size() == 0){ + + for (vector::iterator iter = ObjectName.begin(); + iter != ObjectName.end(); iter++){ + + try{ + PropertyName = ObjectName[SeekCount].substr(0,7); + } + + catch(const out_of_range& oor){ + continue; + } + + if (PropertyName == "DTSTART"){ + + if (ValidDateTimeStart == false){ + ValidDateTimeStart = true; + } else { + return CALENDAROBJECTVALID_INVALIDFORMAT; + } + + } + + SeekCount++; + + } + + } else { + ValidDateTimeStart = true; + } + + SeekCount = 0; + // Look for END:VEVENT. for (vector::iterator iter = ObjectName.begin(); @@ -124,6 +160,7 @@ CalendarObjectValidResult CalendarEventObject::ValidObject(){ if (ValidBegin == true && ValidEnd == true && ValidDateTimeStamp == true && + ValidDateTimeStart == true && ValidUniqueID == true){ return CALENDAROBJECTVALID_OK; @@ -166,7 +203,7 @@ void CalendarEventObject::ProcessData(){ DataReceived = ProcessTextVectors(&ObjectName, &ObjectData, false, "UID"); - // Process the data from DTSTAMP. + // Process the data from UID. if (DataReceived.begin() != DataReceived.end()){