private async Task ImportScpAsync(string path, string target, string shutdown) { foreach (Server server in ServersListBox.Items) { if (!await NetworkHelper.CheckConnectionAsync(server.Host)) { OutputTextBox.AppendText(string.Format("Servidor {0} inacessivel, verifique a conexão e tente novamente.\n", server.Host)); continue; } try { OutputTextBox.AppendText(string.Format("Importando configurações para {0}...\n", server.Host)); ScpController idrac = new ScpController(server); IdracJob job = await idrac.ImportScpFileAsync(path, target, shutdown, "On"); OutputTextBox.AppendText(string.Format("Job {0} criado para servidor {1}\n", job.Id, server)); var chassisIdrac = new ChassisController(server); var chassis = await chassisIdrac.GetChassisAsync(); currentJobs.TryAdd(job.Id, new ServerJob() { Job = job, SerialNumber = chassis.SKU, Server = server }); } catch (Exception ex) { OutputTextBox.AppendText(string.Format("Falha ao importar arquivo para {0} {1}\n", server.Host, ex.Message)); } } ImportButton.IsEnabled = true; }
private async Task ExportScpFileAsync(Server server, string target, string exportUse) { if (!await NetworkHelper.CheckConnectionAsync(server.Host)) { MessageBox.Show("Servidor inacessivel", "Erro", MessageBoxButton.OK, MessageBoxImage.Error); return; } try { ScpController idrac = new ScpController(server); ExportButton.IsEnabled = false; OutputTextBox.AppendText(string.Format("Exportando configurações de {0}...\n", server.Host)); IdracJob job = await idrac.ExportScpFileAsync(target, exportUse); var load = new LoadWindow(server, job) { Title = server.Host }; load.Closed += async(object sender, EventArgs e) => { var window = (LoadWindow)sender; job = window.Job; if (job.JobState.Contains("Completed")) { await SaveFileAsync(server, job); } }; load.Show(); } catch (Exception ex) { OutputTextBox.AppendText(string.Format("Falha ao exportar arquivo: {0}\n", ex.Message)); ExportButton.IsEnabled = true; } }
private async Task SaveFileAsync(Server server, IdracJob job) { try { var idrac = new ScpController(server); string file = await idrac.GetScpFileDataAsync(job.Id); string currentTime = DateTime.Now.ToString().Replace(":", "").Replace("/", "").Replace(" ", ""); string downloadsFolder = KnownFolders.Downloads.Path; string path = System.IO.Path.Combine(downloadsFolder, "SCP_" + currentTime + ".xml"); File.WriteAllText(path, file); OutputTextBox.AppendText(string.Format("Arquivo exportado com sucesso, salvo em {0}\n", path)); } catch (Exception ex) { OutputTextBox.AppendText(string.Format("Falha ao salvar arquivo {0}\n", ex.Message)); } finally { ExportButton.IsEnabled = true; } }