Ejemplo n.º 1
0
        /// <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;
            }
        }
Ejemplo n.º 2
0
        /// <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);
        }