Ejemplo n.º 1
0
        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"));
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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"));
            }
        }