public void SortearNumeros() { if (Tope < 0 || Tope < Cantidad || Tope < Inicio || Inicio < 0 || Cantidad < 0) { throw new ArgumentException("Existen errores en los parametros del sorteo."); } Tope--; if (PermitirDuplicados) { for (int i = 0; i < Cantidad; i++) { int numero = sortearNumero(Inicio, Tope); Resultado.Add(ContenidoBolillero[numero]); } } else { for (int i = 0; i < Cantidad; i++) { int numero; do { numero = sortearNumero(Inicio, Tope); } while (Resultado.Contains(ContenidoBolillero[numero])); Resultado.Add(ContenidoBolillero[numero]); } } }
public void Copiar(string aplicacao, string local, string remoto, string[] arquivos) { using (var session = GetNewSession()) { Backup(session, aplicacao, local, remoto, arquivos); Resultado.Add("Cópia dos arquivos"); foreach (var arquivo in arquivos) { var arquivoLocal = $@"{local}\{aplicacao}\{arquivo}"; var arquivoRemoto = $@"{remoto}/{aplicacao}/{arquivo.Replace(@"\", "/")}"; try { var transferResult = session.PutFiles(arquivoLocal, arquivoRemoto); transferResult.Check(); Resultado.Add($"OK - de: {arquivoLocal} para: {arquivoRemoto}"); } catch (Exception e) { Resultado.Add($"FALHA - de: {arquivoRemoto} para: {arquivoRemoto}, erro: {e.Message}"); } } Resultado.Add("Fim cópia dos arquivos"); } }
public void Run() { if (!FilaEntrada.Any() && NumberProcessed == NumeroConexoes) { RunConnectedActivities(); return; } else if (!FilaEntrada.Any() || NumberProcessed < NumeroConexoes) { return; } FilaEntrada = FilaEntrada.OrderBy(x => x.Inicio).ToList(); foreach (SItem item in FilaEntrada) { var tempo = CalcularTS(); var newItem = AddItemToFilaProcesso(new SItem { Nome = item.Nome, Inicio = item.Inicio }, tempo); Resultado.Add(newItem); sendToConnection(new SItem { Inicio = newItem.Fim, Nome = newItem.Nome }); } if (Print) { //PrintAtividadesEntrada(); PrintAtividadesResultado(); } RunConnectedActivities(); }
public void SortearNumeros() { if (Tope < 0 || Tope < Cantidad || Tope < Inicio || Inicio < 0 || Cantidad < 0) { throw new ArgumentException("Existen errores en los parametros del sorteo."); } if (UsarRango) { if (Rango != 0) { if (Cantidad == 0) { Cantidad = CalcularCantidad(); } } int inicio; for (int i = 1; i <= Cantidad; i++) { inicio = (i - 1) * (int)Rango + 1; int topeRango = i * (int)Rango; if (Tope > topeRango) { Resultado.Add(sortearNumero(inicio, topeRango)); } else { Resultado.Add(sortearNumero(inicio, Tope)); } } } else { if (PermitirDuplicados) { for (int i = 0; i < Cantidad; i++) { int numero = sortearNumero(Inicio, Tope); Resultado.Add(numero); } } else { for (int i = 0; i < Cantidad; i++) { int numero; do { numero = sortearNumero(Inicio, Tope); } while(Resultado.Contains(numero)); Resultado.Add(numero); } } } }
private void Backup(Session sessionFtp, string aplicacao, string local, string remoto, string[] arquivos) { if (!GeraBackup) { return; } Resultado.Add($"Processamento do backup ------------------ "); var dataHoraAtual = DateTime.Now.ToString("yyyyMMddHHmmss"); var diretorioBackup = $"backup-{dataHoraAtual}"; string diretorioTemporario = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); Directory.CreateDirectory(diretorioTemporario); foreach (var arquivo in arquivos) { var arquivoRemoto = $@"{remoto}\{aplicacao}\{arquivo}".Replace(@"\", "/").Replace(@"\\", @"\"); var arquivoRemotoBackup = $@"{remoto}/{aplicacao}/{diretorioBackup}\{arquivo}".Replace(@"\", "/").Replace(@"\\", @"\"); var remotoSemArquivo = arquivoRemotoBackup.Replace(arquivoRemotoBackup.Split('/').Last(), ""); try { if (!sessionFtp.FileExists(remotoSemArquivo)) { sessionFtp.CreateDirectory(remotoSemArquivo); } sessionFtp.MoveFile(arquivoRemoto, arquivoRemotoBackup); Resultado.Add($"OK - de: {arquivoRemoto} para: {arquivoRemotoBackup}"); } catch (Exception e) { Resultado.Add($"FALHA - de: {arquivoRemoto} para: {arquivoRemotoBackup}, erro: {e.Message}"); } } var result = sessionFtp.SynchronizeDirectories(SynchronizationMode.Local, diretorioTemporario, $@"{remoto}/{aplicacao}/{diretorioBackup}\", false); result.Check(); var remove = sessionFtp.RemoveFiles($@"{remoto}/{aplicacao}/{diretorioBackup}\"); remove.Check(); ArquivoBkpZip = $@"c:\teste\transf-bkp-{dataHoraAtual}.zip"; ZipFile.CreateFromDirectory(diretorioTemporario + @"\", ArquivoBkpZip, CompressionLevel.Optimal, false); Resultado.Add($"Fim do processamento do backup ------------------ "); }
public void Run() { // Não roda caso o Nó seja uma "folha", ou seja, não tenha conexões if (!Connections.Any()) { if (Print) { PrintAtividadesEntrada(); } return; } // Ordena a fila de entrada pela ordem de entrada na atividade FilaEntrada = FilaEntrada.OrderBy(x => x.Inicio).ToList(); foreach (SItem item in FilaEntrada) { // Seleciona a próxima atividade (conexão) de acordo com um número aleatório gerado SConnection target = GetConnectionByProbability(rand.NextDouble()); // Pega o tempo de processamento desse item e atualiza o mesmo var tempoProc = target.CalcTS(); var newItem = ProcessItem(new SItem { Nome = item.Nome, Inicio = item.Inicio }, tempoProc); // Adiciona o item na lista de resultados Resultado.Add(newItem); // Adiciona o item na fila de entrada da próxima atividade target.Connection.FilaEntrada.Add(new SItem { Inicio = newItem.Fim, Nome = newItem.Nome }); } // Faz o Display das informações obtidas com a simulação da atividade if (Print) { PrintAtividadesResultado(); } // Processa as connexões RunConnectedActivities(); }
public void SortearNumeros() { if (Tope < 0 || Tope < cantidad || Tope < Inicio || Inicio < 0 || cantidad < 0 || cantidad > Tope || Rango < 0) { throw new ArgumentException("Existen errores en los parametros del sorteo."); } int inicio; for (int i = 1; i <= cantidad; i++) { inicio = (i - 1) * (int)Rango + 1; int topeRango = i * (int)Rango; if (Tope > topeRango) { Resultado.Add(sortearNumero(inicio, topeRango)); } else { Resultado.Add(sortearNumero(inicio, Tope)); } } }
public void SortearNumeros() { if (Tope < 0 || Tope < Cantidad || Tope < Inicio || Inicio < 0 || Cantidad < 0 || Cantidad > Tope) { throw new ArgumentException("Existen errores en los parametros del sorteo."); } Rango = CalcularFrecuencia(); int inicio; int rangoAnterior = 0; // el restoRango (la parte decimal del calculo de la frecuencia) se multiplica por Cantidad para calcular cuantos numeros de menos quedan para cubrir el tope. int sumaRango = (int)(restoRango * Cantidad); for (int i = 1; i <= Cantidad; i++) { //inicio = (i - 1) * (int)Rango + 1; inicio = rangoAnterior + 1; //int topeRango = i * (int)Rango; int topeRango = i == 2 ? rangoAnterior + (int)Rango + 1 : rangoAnterior + (int)Rango; // mientras la iteracion sea menor que sumaRango se suma 1 al tope de rango if (i <= sumaRango) { topeRango++; } if (Tope > topeRango) { Resultado.Add(sortearNumero(inicio, topeRango)); } else { Resultado.Add(sortearNumero(inicio, Tope)); } rangoAnterior = topeRango; } }
protected void PesquisarDiretorio(string diretorioPai) { if (InternalCancelado) { return; } OnMensagemProgresso(diretorioPai); if (InternalCancelado) { return; } string[] listaArquivos; try { listaArquivos = Directory.GetFiles(diretorioPai, Contexto.NomeArquivo); } catch (Exception ex) { Logger.Default.LogAviso(String.Format( "Diretório {0}. Erro: {1}", diretorioPai, ex.Message)); listaArquivos = null; } if (listaArquivos != null) { foreach (string arquivo in listaArquivos) { if (InternalCancelado) { return; } if (Resultado.Count == Contexto.MaximoDeResultados) { return; } try { EntradaEncontrada entrada = new EntradaEncontrada(arquivo, EntradaEncontrada.eTipoEntrada.eTipoArquivo); if (Contexto.FiltroArquivo != null) { if (!Contexto.FiltroArquivo.Filtrar(this, Contexto, entrada)) { entrada = null; } } if (entrada != null) { Resultado.Add(entrada); OnArquivoEncontrado(entrada); } } catch (Exception ex) { Logger.Default.LogAviso(String.Format( "Arquivo {0}. Erro: {1}", arquivo, ex.Message)); return; } } } if (InternalCancelado) { return; } string[] listaDiretorios; try { listaDiretorios = Directory.GetDirectories(diretorioPai); } catch (Exception ex) { Logger.Default.LogAviso(String.Format( "Diretório {0}. Erro: {1}", diretorioPai, ex.Message)); return; } foreach (string diretorio in listaDiretorios) { if (InternalCancelado) { return; } if (Resultado.Count == MaximoDeResultados) { return; } if (Contexto.IgnorarPastasOcultas) { DirectoryInfo info = new DirectoryInfo(diretorio); if ((info.Attributes & FileAttributes.Hidden) > 0) { continue; } } // Usa o filtro de diretório para retorno o diretório como um resultado // de pesquisa. if (Contexto.FiltroDiretorio != null) { try { EntradaEncontrada entrada = new EntradaEncontrada(diretorio, EntradaEncontrada.eTipoEntrada.eTipoDiretorio); if (Contexto.FiltroDiretorio.Filtrar(this, Contexto, entrada)) { Resultado.Add(entrada); OnArquivoEncontrado(entrada); } } catch (Exception ex) { Logger.Default.LogAviso(String.Format( "Diretório {0}. Erro: {1}", diretorio, ex.Message)); return; } } // pesquisa em todos os diretórios independente do filtro de diretório if (Contexto.UseThreads) { QueuePesquisarDiretorio(diretorio); } else { PesquisarDiretorio(diretorio); } } }