/* * private static Boolean AprovaAtualizacaoComRDM(UpdateGA update) * { * * var builder = new ConfigurationBuilder().SetBasePath(System.IO.Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json", optional: true, reloadOnChange: true); * IConfigurationRoot configuration = builder.Build(); * * * var traceGP = new Models.TraceGP(); * configuration.GetSection("TraceGP").Bind(traceGP); * * String stringConnection = traceGP.TraceGPConexao; * String select = traceGP.TraceGPSelect; * * * OracleConnection conn; * OracleCommand cmd = null; * conn = new OracleConnection(stringConnection); * * conn.Open(); * cmd = new OracleCommand(select, conn); * cmd.Parameters.Clear(); * cmd.Parameters.Add(":RDM", update.RDM); * * OracleDataReader reader = cmd.ExecuteReader(); * reader.Read(); * * if (!reader.HasRows) * { * return false; * } * * int resultado = Convert.ToInt16(reader.GetValue(0).ToString()); * * conn.Close(); * * if (resultado == 87 || resultado == 60 || resultado == 76 || resultado == 33) * { * return true; * } * * * return false; * }*/ public static void ExecuteProcedure(ProcedureSchedule procedureSchedule) { Models.GAContext context = new Models.GAContext(); GALibrary.Models.Parameter parameter = context.Parameter.FirstOrDefault(); var steps = context.ProcedureSteps.Where(x => x.ProcedureID == procedureSchedule.ProcedureID).ToList().OrderBy(x => x.Order); //Atualiza status para atualizando (3) procedureSchedule.Status = 3; context.Entry(procedureSchedule).State = EntityState.Modified; context.SaveChanges(); try { foreach (ProcedureSteps step in steps) { switch (step.Type) { case 3: GALibrary.GALogs.SaveLogProcedure(procedureSchedule, "Command", "Inicio da execucao do comando", 2, parameter); UpdateCommand(null, procedureSchedule, step.ProcessId); GALibrary.GALogs.SaveLogProcedure(procedureSchedule, "Command", "Fim da execucao do comando", 2, parameter); break; case 4: GALibrary.GALogs.SaveLogProcedure(procedureSchedule, "ServiceStart", "Inicio do start de serviço", 2, parameter); UpdateServiceStart(null, procedureSchedule, step.ProcessId); GALibrary.GALogs.SaveLogProcedure(procedureSchedule, "ServiceStart", "Fim do start de serviço", 2, parameter); break; case 5: GALibrary.GALogs.SaveLogProcedure(procedureSchedule, "ServiceStop", "Inicio da parada de serviço", 2, parameter); UpdateServiceStop(null, procedureSchedule, step.ProcessId); GALibrary.GALogs.SaveLogProcedure(procedureSchedule, "ServiceStop", "Fim da parada de serviço", 2, parameter); break; } } procedureSchedule.Status = 1; context.Entry(procedureSchedule).State = EntityState.Modified; context.SaveChanges(); } catch { procedureSchedule.Status = 2; context.Entry(procedureSchedule).State = EntityState.Modified; context.SaveChanges(); } }
public static void ApagaArquivosAntigos() { Models.GAContext context = new Models.GAContext(); String folderUpdate = context.Parameter.First().PathUpdate; String folderBackup = context.Parameter.First().PathBackup; int retentionTime = context.Parameter.FirstOrDefault().RetentionTime.Value; DateTime dataExpurgo = DateTime.Now.AddDays(-retentionTime); //Busca os SQLs e Arquivos que são tempaltes para não apaga-los List <int> fileTemplate = context.UpdateSteps.Include(x => x.Update).Where(x => x.Type == 1 && x.Update.Template == true).Select(x => x.ProcessId).ToList(); List <int> sqlTemplate = context.UpdateSteps.Include(x => x.Update).Where(x => x.Type == 2 && x.Update.Template == true).Select(x => x.ProcessId).ToList(); List <UpdateGA> updateList = context.UpdateGA.Where(x => x.Date < dataExpurgo && x.FilesRemoved == false && x.Template == false).ToList(); List <File> fileList = context.File.Where(x => x.Date < dataExpurgo && x.FilesRemoved == false && !fileTemplate.Contains(x.Id)).ToList(); List <SQL> sqlList = context.SQL.Where(x => x.Date < dataExpurgo && x.FilesRemoved == false && !sqlTemplate.Contains(x.Id)).ToList(); //Apaga backups foreach (UpdateGA update in updateList) { String pastaBackup = folderBackup + "\\" + update.Date.Year.ToString().PadLeft(4, '0') + "\\" + update.Date.Month.ToString().PadLeft(2, '0') + "\\" + update.Id; if (System.IO.Directory.Exists(pastaBackup)) { System.IO.Directory.Delete(pastaBackup, true); } update.FilesRemoved = true; context.Entry(update).State = EntityState.Modified; context.SaveChanges(); } //apaga arquivos foreach (File file in fileList) { String pastaFiles = folderUpdate + "\\Files\\" + file.Date.Year.ToString().PadLeft(4, '0') + "\\" + file.Date.Month.ToString().PadLeft(2, '0') + "\\" + file.Id; if (System.IO.Directory.Exists(pastaFiles)) { System.IO.Directory.Delete(pastaFiles, true); } file.FilesRemoved = true; context.Entry(file).State = EntityState.Modified; context.SaveChanges(); } //Apaga arquivos SQL foreach (SQL sql in sqlList) { String pastaSQL = folderUpdate + "\\SQL\\" + sql.Date.Year.ToString().PadLeft(4, '0') + "\\" + sql.Date.Month.ToString().PadLeft(2, '0') + "\\" + sql.Id; if (System.IO.Directory.Exists(pastaSQL)) { System.IO.Directory.Delete(pastaSQL, true); } sql.FilesRemoved = true; context.Entry(sql).State = EntityState.Modified; context.SaveChanges(); } }
public static UpdateGA UpdateApplication(int updateId) { Models.GAContext context = new Models.GAContext(); GALibrary.Models.Parameter parameter = context.Parameter.FirstOrDefault(); var steps = context.UpdateSteps.Where(x => x.UpdateId == updateId).ToList().OrderBy(x => x.Order); UpdateGA update = context.UpdateGA.First(x => x.Id == updateId); //Atualiza status para atualizando (3) update.Status = 3; context.Entry(update).State = EntityState.Modified; context.SaveChanges(); foreach (UpdateSteps step in steps) { switch (step.Type) { case 1: GALibrary.GALogs.SaveLogUpdate(update, "FilesDelete", "Inicio da remocao de arquivos", 2, parameter); UpdateRemoveFiles(update, step.ProcessId); GALibrary.GALogs.SaveLogUpdate(update, "FilesDelete", "Fim da remocao de arquivos", 2, parameter); break; case 2: GALibrary.GALogs.SaveLogUpdate(update, "Files", "Inicio da copia de arquivos", 2, parameter); UpdateCopyFiles(update, step.ProcessId); GALibrary.GALogs.SaveLogUpdate(update, "Files", "Fim da copia de arquivos", 2, parameter); break; case 3: GALibrary.GALogs.SaveLogUpdate(update, "Command", "Inicio da execucao do comando", 2, parameter); UpdateCommand(update, null, step.ProcessId); GALibrary.GALogs.SaveLogUpdate(update, "Command", "Fim da execucao do comando", 2, parameter); break; case 4: GALibrary.GALogs.SaveLogUpdate(update, "ServiceStart", "Inicio do start de servico", 2, parameter); UpdateServiceStart(update, null, step.ProcessId); GALibrary.GALogs.SaveLogUpdate(update, "ServiceStart", "Fim do start de servico", 2, parameter); break; case 5: GALibrary.GALogs.SaveLogUpdate(update, "ServiceStop", "Inicio da parada de servico", 2, parameter); UpdateServiceStop(update, null, step.ProcessId); GALibrary.GALogs.SaveLogUpdate(update, "ServiceStop", "Fim da parada de servico", 2, parameter); break; case 6: GALibrary.GALogs.SaveLogUpdate(update, "SQL", "Inicio da execucao SQL", 2, parameter); UpdateSQL(update, step.ProcessId); GALibrary.GALogs.SaveLogUpdate(update, "SQL", "Fim da execucao SQL", 2, parameter); break; } } GALibrary.GAFiles.CompressFolder(update, parameter); try { string log; using (System.IO.StreamReader reader = new System.IO.StreamReader(GALibrary.GALogs.GetUpdateLog(update, parameter))) { log = reader.ReadToEnd(); } if (log.Contains(" - Error - ")) { update.Status = 2; } else { update.Status = 1; } } catch (Exception erro) { update.Status = 1; GALibrary.GALogs.SaveLogUpdate(update, "Status", "Erro ao salvar status: " + erro.ToString(), 1, parameter); } context.Entry(update).State = EntityState.Modified; context.SaveChanges(); return(update); }