#include "StdAfx.h"
|
#include "MBQueryDms.h"
|
|
|
CMBQueryDms::CMBQueryDms(void)
|
{
|
m_pDocMgr = new CMBQueryDmsDocMgr();
|
m_pCatalogMgr = new CMBQueryDmsCatalogMgr();
|
m_nRecords = 0;
|
m_nTotalPages = 0;
|
m_nCurPage = 0;
|
m_nPageSize = 0;
|
}
|
|
|
CMBQueryDms::~CMBQueryDms(void)
|
{
|
if( m_pDocMgr )
|
{
|
delete m_pDocMgr;
|
m_pDocMgr = NULL;
|
}
|
if( m_pCatalogMgr )
|
{
|
delete m_pCatalogMgr;
|
m_pCatalogMgr = NULL;
|
}
|
}
|
|
|
CMBQueryDmsDocMgr *CMBQueryDms::GetDocMgr()
|
{
|
return m_pDocMgr;
|
}
|
|
CMBQueryDmsCatalogMgr *CMBQueryDms::GetCatalogMgr()
|
{
|
return m_pCatalogMgr;
|
}
|
|
void CMBQueryDms::GetBaseObjVector(CMBBaseObjVector &vectorObj)
|
{
|
m_pCatalogMgr->GetBaseObjVector(vectorObj);
|
m_pDocMgr->GetBaseObjVector(vectorObj);
|
}
|
|
// ÒÆ³ý²éѯ¹ÜÀíÆ÷
|
void CMBQueryDms::RemoveMgr()
|
{
|
m_pDocMgr->RemoveAllDoc();
|
m_pCatalogMgr->RemoveAllCatalog();
|
}
|
|
|
|
bool CMBQueryDms::ParseXml( CString strXml,CString &strErrInfo )
|
{
|
if( strXml.IsEmpty() )
|
{
|
return true;
|
}
|
pugi::xml_document xmlDoc;
|
if (!xmlDoc.load(strXml))
|
{
|
strErrInfo = _T("CMBSearchMgr::ParseXml,¼ÓÔØxmlʧ°Ü!");
|
return false;
|
}
|
|
// ÏÈÇå¿Õ²éѯ¹ÜÀíÆ÷
|
RemoveMgr();
|
|
CString strRecords,strTotalPages,
|
strCurPage,strPageSize,strFileSize;
|
|
pugi::xml_node form = xmlDoc.child(_T("Result"));
|
pugi::xml_node node = form;
|
//////////////////Ò³µÄÐÅÏ¢////////////////////////////////
|
m_strSessionID = node.child_value(_T("SessionID"));
|
strRecords = node.child_value(_T("Records"));
|
m_nRecords = _ttoi(strRecords);
|
strTotalPages = node.child_value(_T("TotalPages"));
|
m_nTotalPages = _ttoi(strTotalPages);
|
strCurPage = node.child_value(_T("CurPage"));
|
m_nCurPage = _ttoi(strCurPage);
|
strPageSize = node.child_value(_T("PageSize"));
|
m_nPageSize = _ttoi(strPageSize);
|
///////////////////catalogÐÅÏ¢/////////////////////////////
|
node = form.child(_T("Body")).child(_T("Catalog"));
|
for (pugi::xml_node catalogNode = node; catalogNode; catalogNode = catalogNode.next_sibling(_T("Catalog")))
|
{
|
CMBQueryDmsCatalog *pQueryCatalog = new CMBQueryDmsCatalog();
|
pQueryCatalog->m_strID = catalogNode.attribute(_T("ID")).value();
|
pQueryCatalog->m_strCatalogPath = catalogNode.child_value(_T("CatalogPath"));
|
pQueryCatalog->m_strCabinetID = catalogNode.child_value(_T("CabinetID"));
|
pQueryCatalog->m_strCabinetName = catalogNode.child_value(_T("CabinetName"));
|
pQueryCatalog->m_strCatalogID = catalogNode.child_value(_T("CatalogID"));
|
pQueryCatalog->m_strListType = catalogNode.attribute(_T("ListType")).value();
|
pQueryCatalog->m_strOrder = catalogNode.attribute(_T("Order")).value();
|
CString strSubCount = catalogNode.attribute(_T("SubCount")).value();
|
pQueryCatalog->m_nSubCount = _ttoi(strSubCount);
|
CString strFileCount = catalogNode.attribute(_T("FileCount")).value();
|
pQueryCatalog->m_nFileCount = _ttoi(strFileCount);
|
pQueryCatalog->m_strDtCreate = catalogNode.attribute(_T("DTCreate")).value();
|
pQueryCatalog->m_strHasAce = catalogNode.attribute(_T("HasAce")).value();
|
pQueryCatalog->m_strPermit = catalogNode.attribute(_T("Permit")).value();
|
pQueryCatalog->m_strGlobalEdit = catalogNode.attribute(_T("GlobalEdit")).value();
|
pQueryCatalog->m_strMasterID = catalogNode.attribute(_T("MasterID")).value();
|
pQueryCatalog->m_strMasterName = catalogNode.attribute(_T("MasterName")).value();
|
pQueryCatalog->m_strName = catalogNode.child_value(_T("Name"));
|
if( !m_pCatalogMgr->AddCatalog(pQueryCatalog) )
|
{
|
delete pQueryCatalog;
|
pQueryCatalog = NULL;
|
}
|
}
|
///////////////////docÐÅÏ¢/////////////////////////////////
|
node = form.child(_T("Body")).child(_T("Doc"));
|
for (pugi::xml_node docNode = node; docNode; docNode = docNode.next_sibling(_T("Doc")))
|
{
|
CMBQueryDmsDoc *pQueryDoc = new CMBQueryDmsDoc();
|
pQueryDoc->m_strID = docNode.attribute(_T("ID")).value();
|
pQueryDoc->m_strCatalogPath = docNode.child_value(_T("CatalogPath"));
|
pQueryDoc->m_strName = docNode.child_value(_T("Name"));
|
pQueryDoc->m_strStatus = docNode.attribute(_T("Status")).value();
|
pQueryDoc->m_strFileType = docNode.attribute(_T("FileType")).value();
|
pQueryDoc->m_strFileTime = docNode.attribute(_T("FileTime")).value();
|
strFileSize = docNode.attribute(_T("FileSize")).value();
|
pQueryDoc->m_nFileSize = _ttoi(strFileSize);
|
pQueryDoc->m_strDTCreate = docNode.attribute(_T("DTCreate")).value();
|
pQueryDoc->m_strCreatorID = docNode.attribute(_T("CreatorID")).value();
|
pQueryDoc->m_strCreatorName = docNode.attribute(_T("CreatorName")).value();
|
//pQueryDoc->m_strIsLock = docNode.attribute(_T("IsLock")).value();
|
|
pQueryDoc->m_strLocker = docNode.attribute(_T("Locker")).value();
|
pQueryDoc->m_strLockerName = docNode.attribute(_T("LockerName")).value();
|
pQueryDoc->m_strLockTime = docNode.attribute(_T("LockTime")).value();
|
|
pQueryDoc->m_strCabinetID = docNode.attribute(_T("CabinetID")).value();
|
pQueryDoc->m_strCabinetName = docNode.attribute(_T("CabinetName")).value();
|
pQueryDoc->m_strCreateDepartID = docNode.attribute(_T("CreateDepartID")).value();
|
pQueryDoc->m_strCreateDepartName = docNode.attribute(_T("CreateDepartName")).value();
|
pQueryDoc->m_strTags = docNode.attribute(_T("Tags")).value();
|
pQueryDoc->m_strThumbURL = docNode.child_value(_T("ThumbURL"));
|
|
if( !m_pDocMgr->AddDoc(pQueryDoc) )
|
{
|
delete pQueryDoc;
|
pQueryDoc = NULL;
|
}
|
}
|
|
return true;
|
}
|