#include "CalendarTask.h" using namespace std; CalendarObjectValidResult CalendarTaskObject::ValidObject(){ bool ValidBegin = false; bool ValidEnd = false; bool ValidDateTimeStamp = false; bool ValidUniqueID = false; int SeekCount = 0; string PropertyName; // Look for BEGIN:VTODO. for (vector::iterator iter = ObjectName.begin(); iter != ObjectName.end(); iter++){ if (ObjectName[SeekCount] == "BEGIN" && ObjectData[SeekCount] == "VTODO"){ if (ValidBegin == false){ ValidBegin = true; } else { return CALENDAROBJECTVALID_INVALIDFORMAT; } } if (ObjectName[SeekCount] == "END" && ObjectData[SeekCount] == "VTODO" && ValidBegin == false){ return CALENDAROBJECTVALID_INVALIDFORMAT; } SeekCount++; } SeekCount = 0; // Look for DTSTAMP. 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 == "DTSTAMP"){ if (ValidDateTimeStamp == false){ ValidDateTimeStamp = true; } else { return CALENDAROBJECTVALID_INVALIDFORMAT; } } SeekCount++; } SeekCount = 0; // Look for UID. for (vector::iterator iter = ObjectName.begin(); iter != ObjectName.end(); iter++){ try{ PropertyName = ObjectName[SeekCount].substr(0,3); } catch(const out_of_range& oor){ continue; } if (PropertyName == "UID"){ if (ValidUniqueID == false){ ValidUniqueID = true; } else { return CALENDAROBJECTVALID_INVALIDFORMAT; } } SeekCount++; } SeekCount = 0; // Look for END:VTODO. for (vector::iterator iter = ObjectName.begin(); iter != ObjectName.end(); iter++){ if (ObjectName[SeekCount] == "END" && ObjectData[SeekCount] == "VTODO"){ if (ValidEnd == false){ ValidEnd = true; } else { return CALENDAROBJECTVALID_INVALIDFORMAT; } } SeekCount++; } // Check if the VTODO is valid. if (ValidBegin == true && ValidEnd == true && ValidDateTimeStamp == true && ValidUniqueID == true){ return CALENDAROBJECTVALID_OK; } else { return CALENDAROBJECTVALID_INVALIDFORMAT; } } void CalendarTaskObject::ProcessData(){ }