Пример #1
0
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);
		}
	}

}