Example #1
0
bool CWizApi::uploadAttachment(const WIZDOCUMENTATTACHMENTDATAEX& data)
{
    Q_ASSERT(data.nObjectPart != 0);

    int nParts = data.nObjectPart;
    bool bData = (nParts & WIZKM_XMKRPC_ATTACHMENT_PART_DATA) ? true : false;

    m_currentAttachment = data;
    if (bData) {
        if (!m_db->LoadCompressedAttachmentData(m_currentAttachment.strGUID, m_currentAttachment.arrayData)) {
            QString info = data.strName;
            Q_EMIT processErrorLog(tr("Could not load attachment data: ") + info);

            //skip
            onUploadAttachment(data);

            //re-upload attachment at next time
            m_db->ModifyObjectVersion(data.strGUID, WIZDOCUMENTATTACHMENTDATAEX::ObjectName(), -1);
            return false;
        }

        WIZOBJECTDATA obj;
        obj.strObjectGUID = m_currentAttachment.strGUID;
        obj.strDisplayName = m_currentAttachment.strName;
        obj.eObjectType = wizobjectDocumentAttachment;
        obj.arrayData = m_currentAttachment.arrayData;

        return uploadObjectData(obj);
    } else {
        return callAttachmentPostData(data);
    }
}
Example #2
0
void CWizApi::onUploadObjectDataCompleted(const WIZOBJECTDATA& data)
{
    if (data.eObjectType == wizobjectDocument) {
        Q_ASSERT(data.strObjectGUID == m_currentDocument.strGUID);
        Q_ASSERT(m_currentDocument.nObjectPart & WIZKM_XMLRPC_OBJECT_PART_DATA);

        m_db.SetObjectDataDownloaded(m_currentDocument.strGUID, "document", true);
        callDocumentPostData(m_currentDocument);

    } else if (data.eObjectType == wizobjectDocumentAttachment) {
        Q_ASSERT(data.strObjectGUID == m_currentAttachment.strGUID);
        Q_ASSERT(m_currentAttachment.nObjectPart & WIZKM_XMLRPC_OBJECT_PART_DATA);

        m_db.SetObjectDataDownloaded(m_currentDocument.strGUID, "attachment", true);
        callAttachmentPostData(m_currentAttachment);

    } else {
        Q_ASSERT(false);
    }
}