void RecurrenceManager::RealizeTask(MSXML2::IXMLDOMNode *pNode, unsigned __int64 templateId, unsigned __int64 parentId, unsigned __int64 start, int duration) { if(!FindTaskInstance(templateId, start)) { TaskManager *pTaskManager = m_pDataManager->GetTaskManagerInstance(); BSTR title = 0; HRESULT hr = XMLHelper::GetChildText(pNode, CTaskModel::TITLE, &title); if(hr == S_OK && title) { BSTR desc = 0; hr = XMLHelper::GetChildText(pNode, CTaskModel::DESCRIPTION, &desc); //TODO: set task templateId Task *pTask = pTaskManager->createTask(desc, title, 3, false, start, 0, parentId); StringBuffer conv(32); pTask->SetCustomAttribute(_T("recurrenceid"), ModelUtils::toHexString(templateId, conv)); TimeEntryManager *pTimeEntryManager = m_pDataManager->GetDayManagerInstance()->GetSpeculativeEntryManager(); pTimeEntryManager->CreateTimeEntry(pTask->GetID(), start, start + (duration * ModelUtils::UNITS_PER_MINUTE), pTask->GetTitle()); if(hr == S_OK && desc)SysFreeString(desc); SysFreeString(title); } } }