public async Task <IActionResult> Create([Bind("Id,Name,Description,DatabaseName,Port,DatabaseUser,DatabasePassword,Server,DatabaseConnectionId,ApplicationId,Enable,User,Date")] DatabaseGA databaseGA, int DatabaseGAApplicationId, int DatabaseGADatabaseConnectionId) { try { databaseGA.Date = DateTime.Now; databaseGA.User = User.Identity.Name; databaseGA.Enable = true; if (ModelState.IsValid) { databaseGA.DatabasePassword = GALibrary.GACrypto.Base64Encode(databaseGA.DatabasePassword); databaseGA.DatabaseUser = GALibrary.GACrypto.Base64Encode(databaseGA.DatabaseUser); _context.Add(databaseGA); await _context.SaveChangesAsync(); GALibrary.GALogs.SaveLog("DatabaseGA", "Fim do cadastro do banco de dados " + databaseGA.Name + " pelo usuario " + User.Identity.Name, 2, _context.Parameter.FirstOrDefault()); return(RedirectToAction(nameof(Index))); } ViewBag.DatabaseGAApplicationId = new SelectList(_context.Application.OrderBy(x => x.Name), "Id", "Name", DatabaseGAApplicationId); ViewBag.DatabaseGADatabaseConnectionId = new SelectList(_context.DatabaseConnection.OrderBy(x => x.Name), "Id", "Name", DatabaseGADatabaseConnectionId); return(View(databaseGA)); } catch (Exception erro) { GALibrary.GALogs.SaveLog("DatabaseGA", "Erro ao cadastrar banco de dados pelo usuario " + User.Identity.Name + ": " + erro.ToString(), 1, _context.Parameter.FirstOrDefault()); return(View("~/Views/Shared/Error.cshtml")); } }
private static String UpdateSQLCommand(String sqlScript, SQL sql) { Models.GAContext context = new Models.GAContext(); String pathTemp = context.Parameter.First().PathTemp; DatabaseGA database = context.DatabaseGA.Include(x => x.DatabaseConnection).First(x => x.Id == sql.DatabaseId); String comandoCompleto = ""; String result = ""; Guid id = Guid.NewGuid(); if (!System.IO.Directory.Exists(pathTemp)) { System.IO.Directory.CreateDirectory(pathTemp); } if (!pathTemp.EndsWith("\\")) { pathTemp += "\\" + id.ToString() + ".sql"; } comandoCompleto = database.DatabaseConnection.SQLImportCommand; comandoCompleto = comandoCompleto.Replace("usuarioDeAcesso", GALibrary.GACrypto.Base64Decode(database.DatabaseUser)); comandoCompleto = comandoCompleto.Replace("senhaDeAcesso", GALibrary.GACrypto.Base64Decode(database.DatabasePassword)); comandoCompleto = comandoCompleto.Replace("enderecoServidor", database.Server); comandoCompleto = comandoCompleto.Replace("nomeBancoDeDados", database.DatabaseName); comandoCompleto = comandoCompleto.Replace("portaBancoDeDados", database.Port.ToString()); comandoCompleto = comandoCompleto.Replace("SQLScript", pathTemp); try { //Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); System.IO.File.AppendAllText(pathTemp, sqlScript, CodePagesEncodingProvider.Instance.GetEncoding(1252)); //Ajusta o charset para que a acentuação funcione corretamente //Ajusta o formato da data result = database.DatabaseConnection.SQLImportCommand + System.Environment.NewLine; result += OSCommand("set NLS_DATE_FORMAT=DD/MM/RR && " + comandoCompleto); //http://possoajudar.unimed-ners.com.br/ti/_layouts/15/start.aspx#/Catlogo%20de%20Servios%20%20Viso%20TI/Banco%20de%20Dados%20Oracle%20-%20Caracteres%20de%20acentua%C3%A7%C3%A3o%20inv%C3%A1lidos.aspx } catch (Exception error) { result += System.Environment.NewLine + "Comando: " + database.DatabaseConnection.SQLImportCommand + " - " + error.ToString(); } finally { if (System.IO.File.Exists(pathTemp)) { Thread.Sleep(2000); System.IO.File.Delete(pathTemp); } } return(result); }
public async Task <IActionResult> Edit(int id, [Bind("Id,Name,Description,DatabaseName,Port,DatabaseUser,DatabasePassword,Server,DatabaseConnectionId,ApplicationId,Enable,User,Date")] DatabaseGA databaseGA) { if (id != databaseGA.Id) { return(NotFound()); } try { databaseGA.Date = DateTime.Now; databaseGA.User = User.Identity.Name; if (databaseGA.DatabaseUser != null) { databaseGA.DatabaseUser = GALibrary.GACrypto.Base64Encode(databaseGA.DatabaseUser); } if (databaseGA.DatabasePassword != null) { databaseGA.DatabasePassword = GALibrary.GACrypto.Base64Encode(databaseGA.DatabasePassword); } else { String databaseGAPassword = _context.DatabaseGA.AsNoTracking().First(x => x.Id == id).DatabasePassword.Clone().ToString(); databaseGA.DatabasePassword = databaseGAPassword; } if (ModelState.IsValid) { _context.Update(databaseGA); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewBag.DatabaseGAApplicationId = new SelectList(_context.Application.OrderBy(x => x.Name), "Id", "Name", databaseGA.ApplicationId); ViewBag.DatabaseGADatabaseConnectionId = new SelectList(_context.DatabaseConnection.OrderBy(x => x.Name), "Id", "Name", databaseGA.DatabaseConnectionId); ViewBag.DatabaseGAEnabled = new SelectList(new[] { new { ID = true, Name = "Sim" }, new { ID = false, Name = "Não" }, }, "ID", "Name", databaseGA.Enable); GALibrary.GALogs.SaveLog("DatabaseGA", "Fim da edicao do banco de dados " + databaseGA.Name + " realizada pelo usuario " + User.Identity.Name, 2, _context.Parameter.FirstOrDefault()); return(View(databaseGA)); } catch (Exception erro) { GALibrary.GALogs.SaveLog("DatabaseGA", "Erro ao editar banco de dados " + databaseGA.Name + " pelo usuario " + User.Identity.Name + ": " + erro.ToString(), 1, _context.Parameter.FirstOrDefault()); return(View("~/Views/Shared/Error.cshtml")); } }