| 1089 | } |
| 1090 | |
| 1091 | bool WizKMSync::downloadObjectData() |
| 1092 | { |
| 1093 | CWizObjectDataArray arrayObject; |
| 1094 | if (!m_pDatabase->getObjectsNeedToBeDownloaded(arrayObject)) |
| 1095 | { |
| 1096 | m_pEvents->onError("Cannot get objects need to be downloaded form server!"); |
| 1097 | return FALSE; |
| 1098 | } |
| 1099 | |
| 1100 | if (arrayObject.empty()) |
| 1101 | return TRUE; |
| 1102 | |
| 1103 | std::sort(arrayObject.begin(), arrayObject.end(), WizCompareObjectByTypeAndTime); |
| 1104 | |
| 1105 | int start = 0; |
| 1106 | int size = 0; |
| 1107 | ::GetSyncProgressRange(::syncDownloadObjectData, start, size); |
| 1108 | m_pEvents->onSyncProgress(start); |
| 1109 | |
| 1110 | int total = int(arrayObject.size()); |
| 1111 | |
| 1112 | size_t succeeded = 0; |
| 1113 | |
| 1114 | size_t nCount = arrayObject.size(); |
| 1115 | for (size_t i = 0; i < nCount; i++) |
| 1116 | { |
| 1117 | if (m_pEvents->isStop()) |
| 1118 | return FALSE; |
| 1119 | |
| 1120 | WIZOBJECTDATA data = arrayObject[i]; |
| 1121 | |
| 1122 | QString strMsgFormat = data.eObjectType == wizobjectDocument ? _TR("Downloading note: %1"): _TR("Downloading attachment: %1"); |
| 1123 | QString strStatus = WizFormatString1(strMsgFormat, data.strDisplayName); |
| 1124 | m_pEvents->onStatus(strStatus); |
| 1125 | |
| 1126 | QByteArray stream; |
| 1127 | if (data.eObjectType == wizobjectDocument) |
| 1128 | { |
| 1129 | WIZDOCUMENTDATAEX ret; |
| 1130 | ret.strGUID = data.strObjectGUID; |
| 1131 | ret.strKbGUID = data.strKbGUID; |
| 1132 | ret.strTitle = data.strDisplayName; |
| 1133 | QString fileName = m_pDatabase->getDocumentFileName(ret.strGUID); |
| 1134 | m_server.clearJsonResult(); |
| 1135 | if (!m_server.document_downloadData(data.strObjectGUID, ret, fileName)) |
| 1136 | { |
| 1137 | if (m_server.lastJsonResult().externCode == "WizErrorNotExistsInDb") |
| 1138 | { |
| 1139 | m_pDatabase->deleteDocumentFromLocal(ret.strGUID); |
| 1140 | } |
| 1141 | else |
| 1142 | { |
| 1143 | m_pEvents->onError(WizFormatString1("Cannot download note data from server: %1", data.strDisplayName)); |
| 1144 | } |
| 1145 | return false; |
| 1146 | } |
| 1147 | stream = ret.arrayData; |
| 1148 | } |
no test coverage detected