/// <summary> /// Création d'un fichier zip et envoi sur le serveur /// </summary> /// <param name="systemDefinition"></param> /// <param name="fileNames"></param> /// <param name="remoteName"></param> private static void PublishZip(CandleModel systemDefinition, List <string> fileNames, string remoteName) { IRepositoryProvider wsRepository = RepositoryManager.Instance.GetMainRemoteProvider(); if (wsRepository == null) { return; } string tempFile = Path.GetTempFileName(); try { RepositoryZipFile zipFile = new RepositoryZipFile(tempFile); zipFile.ArchiveFiles(fileNames); wsRepository.PublishModel(systemDefinition, tempFile, remoteName); } finally { if (File.Exists(tempFile)) { File.Delete(tempFile); } } }
/// <summary> /// Récupére un modèle dans un répertoire /// </summary> /// <param name="basePath">The base path.</param> /// <param name="metaData">The meta data.</param> /// <returns></returns> private static bool GetModelInFolder(string basePath, ComponentModelMetadata metaData) { // Si le modèle est plus récent en local, on demande à le récupérer // Non si l'utilisateur veut la dernière version, il doit faire un getlastversion //if (metaData.IsLastVersion()) //{ // using (ModelSynchronizationForm confirm = new ModelSynchronizationForm(metaData)) // { // if (confirm.ShowDialog() == System.Windows.Forms.DialogResult.Cancel) // return null; // if (confirm.ServerVersionSelected) // RepositoryManager.Instance.ModelsMetadata.GetModelInLocalRepository(metaData); // } //} IRepositoryProvider wsProvider = RepositoryManager.Instance.GetRemoteProvider(metaData.ServerUrl); if (wsProvider != null) { // Récupération et extraction du modele string zipFilePath = metaData.GetFileName(PathKind.Relative); zipFilePath = Path.Combine(Path.GetDirectoryName(zipFilePath), ZipFileName); RepositoryFile rfi = new RepositoryFile(Path.Combine(basePath, zipFilePath), RepositoryCategory.Models, zipFilePath); // Extraction string fullPath = rfi.LocalPhysicalPath; string folder = Path.GetDirectoryName(fullPath); // Si il existe en local (si il a bien été récupéré, on le décompresse) if (File.Exists(fullPath)) { RepositoryZipFile zipFile = new RepositoryZipFile(fullPath, false); zipFile.ExtractAll(folder); return(true); } } return(false); }