/// <summary> /// Tests the offline syncronization complete. /// </summary> /// <param name="zipFile">The zip file.</param> /// <param name="datasetId">The dataset identifier.</param> /// <param name="transactionStart"></param> /// <returns>True if OK.</returns> public bool DoSyncronizationOffline(string zipFile, int datasetId, long transactionStart) { try { var dataset = SubscriberDatasetManager.GetDataset(datasetId); var downloadController = new DownloadController(); downloadController.UnpackZipFile(zipFile); // Check if zip contains folder or file - Could be more than one file var baseFilename = zipFile.Replace(".zip", ""); string xmlFile; var isFolder = false; if (Directory.Exists(baseFilename)) { xmlFile = baseFilename; isFolder = true; } else { xmlFile = Path.ChangeExtension(zipFile, ".xml"); } var fileList = GetChangelogFiles(isFolder, xmlFile); return(LoopChangeLog(fileList, dataset, datasetId, 0, zipFile, transactionStart)); } catch (Exception ex) { Logger.Error(ex, "TestOfflineSyncronizationComplete:"); throw; } }
/// <summary> /// Get and download changelog /// </summary> /// <param name="datasetId"></param> /// <param name="changelogId"></param> /// <param name="downloadController"></param> /// <returns></returns> public bool GetChangelog(int datasetId, string changelogId, out DownloadController downloadController) { try { var dataset = SubscriberDatasetManager.GetDataset(datasetId); var client = buildClient(dataset); var id = new ChangelogIdentificationType { changelogId = changelogId }; var resp = client.GetChangelog(id); var downloaduri = resp.downloadUri; // 20151215-Leg: Norkart downloaduri may contain .zip Logger.Info("GetChangelog downloaduri: " + downloaduri); var changelogDir = string.IsNullOrEmpty(dataset.ChangelogDirectory) ? Environment.GetEnvironmentVariable("TEMP") : dataset.ChangelogDirectory; #if (NOT_FTP) string fileName = changelogDir + @"\" + changelogid + "_Changelog.xml"; #else CreateFolderIfMissing(changelogDir); const string ftpPath = "abonnent"; CreateFolderIfMissing(changelogDir + @"\" + ftpPath); // Create the abonnent folder if missing var fileName = changelogDir + @"\" + ftpPath + @"\" + Path.GetFileName(downloaduri); #endif downloadController = new DownloadController { ChangelogFilename = fileName }; downloadController.DownloadChangelog(downloaduri, dataset); } catch (WebException webEx) { Logger.Error("GetChangelog failed:", webEx); throw; } catch (Exception ex) { Logger.Error(ex, "GetChangelog failed:"); throw; } return(true); }