/// <summary> /// Crea un nuevo contenedor /// </summary> private async Task NewContainerAsync() { string container = string.Empty; if (SolutionViewModel.MainController.SystemController .ShowInputString("Introduzca el nombre del contenedor", ref container) == BauMvvm.ViewModels.Controllers.SystemControllerEnums.ResultType.Yes && !string.IsNullOrWhiteSpace(container)) { ICloudStorageManager manager = GetStorageManager(); if (manager == null) { SolutionViewModel.MainController.SystemController.ShowMessage("Seleccione un sistema de almacenamiento en el árbol"); } else { try { // Crea el contenedor await manager.CreateContainerAsync(container); // Actualiza el árbol Load(); } catch (Exception exception) { SolutionViewModel.MainController.Logger.Default.LogItems.Error($"Error al crear el contenedor {container}", exception); } } } }
/// <summary> /// Sube una lista de archivos /// </summary> private async Task UploadFilesAsync(List <string> files) { ICloudStorageManager manager = GetStorageManager(); // Sube los archivos if (manager == null) { SolutionViewModel.MainController.SystemController.ShowMessage("Seleccione una cuenta de almacenamiento"); } else { (string container, bool isFolder, string remoteFileName) = GetStorageItems(); if (string.IsNullOrWhiteSpace(container)) { SolutionViewModel.MainController.SystemController.ShowMessage("Seleccione un contenedor"); } else { // Sube los archivos using (BlockLogModel block = SolutionViewModel.MainController.Logger.Default.CreateBlock(LogModel.LogType.Info, "Comienzo de la subida de archivos")) { // Sube cada archivo foreach (string file in files) { if (!string.IsNullOrWhiteSpace(file) && System.IO.File.Exists(file)) { string targetFile = System.IO.Path.GetFileName(file); // Si es un directorio, añade el directorio if (isFolder && !string.IsNullOrWhiteSpace(remoteFileName)) { targetFile = System.IO.Path.Combine(remoteFileName, targetFile); } else if (!isFolder && !string.IsNullOrWhiteSpace(remoteFileName)) { targetFile = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(remoteFileName), targetFile); } // Log block.Info($"Comienza la subida del archivo {file}"); // Sube el archivo await manager.UploadAsync(container, targetFile, file); // Log block.Info($"Finaliza la subida del archivo {file}"); } } // Log block.Info("Fin de la subida de archivos"); } // Actualiza el árbol Load(); // Log SolutionViewModel.MainController.Logger.Flush(); } } }
/// <summary> /// Descarga archivos /// </summary> private async Task DownloadAsync() { if (SolutionViewModel.MainController.DialogsController.OpenDialogSelectPath(string.Empty, out string path) == BauMvvm.ViewModels.Controllers.SystemControllerEnums.ResultType.Yes) { if (string.IsNullOrWhiteSpace(path) || !System.IO.Directory.Exists(path)) { SolutionViewModel.MainController.SystemController.ShowMessage("Seleccione un directorio"); } else { ICloudStorageManager manager = GetStorageManager(); // Descarga el contenedor, archivo o directorio if (manager == null) { SolutionViewModel.MainController.SystemController.ShowMessage("Seleccione una cuenta de almacenamiento"); } else { // Descarga de archivos using (BlockLogModel block = SolutionViewModel.MainController.Logger.Default.CreateBlock(LogModel.LogType.Info, "Comienza la descarga de archivos")) { // Descarga el contenedor, directorio o archivo try { if (SelectedNode is NodeStorageContainerViewModel item) { await DownloadFolderAsync(block, manager, path, item.Container, string.Empty); } else if (SelectedNode is NodeStorageContainerFileViewModel folder && folder.IsFolder) { await DownloadFolderAsync(block, manager, path, folder.Blob.Blob.Container, System.IO.Path.GetDirectoryName(folder.Blob.Blob.FullFileName)); } else if (SelectedNode is NodeStorageContainerFileViewModel file && !file.IsFolder) { await DownloadFileAsync(block, manager, path, file.Blob.Blob.Container, file.Blob.Blob.FullFileName); }
public UploadExposureKeysCommandHandler(ICloudStorageManager storageManager) { this.storageManager = storageManager; }
public void Setup() { var storage = CloudStorageAccount.Parse(configurationSection["CloudStorageConnectionString"]); manager = new CloudStorageManager(storage, "testcontainer"); }