private async Task UpdateFirmwareAsync(string path, string option) { foreach (Server server in ServersListBox.Items) { if (!await NetworkHelper.CheckConnectionAsync(server.Host)) { OutputTextBox.AppendText(string.Format("O servidor {0} não está acessivel, verifique a conexão e tente novamente\n", server.Host)); continue; } try { UpdateController idrac = new UpdateController(server); if (!await idrac.CheckRedfishSupportAsync(UpdateController.FirmwareInventory)) { OutputTextBox.AppendText(string.Format("A versão da Idrac do {0} servidor não possui suporte a função de update de firmware\n", server.Host)); continue; } OutputTextBox.AppendText(string.Format("Iniciando upload do firmware para {0}...\n", server.Host)); ChassisController chassisIdrac = new ChassisController(server); IdracJob job = await idrac.UpdateFirmwareAsync(path, option); Chassis chassis = await chassisIdrac.GetChassisAsync(); currentJobs.TryAdd(job.Id, new ServerJob() { Job = job, Server = server, SerialNumber = chassis.SKU }); OutputTextBox.AppendText(string.Format("Upload concluido, criado Job {0} para update\n", job.Id)); } catch (Exception ex) { OutputTextBox.AppendText(string.Format("Erro ao atualizar {0} {1}\n", server.Host, ex.Message)); } } UpdateButton.IsEnabled = true; }