Пример #1
0
        /// <summary>
        /// Efetua um select na base e retorna um objeto T com base no seu primary key
        /// <c>Empresa empresa = DAL.GetObjetoById<Empresa>(3);</c>
        /// </summary>
        /// <typeparam name="T">Tipo do retorno</typeparam>
        /// <param name="id">Código id para buscar o objeto na base</param>
        /// <returns>Retorna uma instância do Tipo</returns>
        public static T GetObjetoById<T>(long id) where T : class, new()
        {
            // cria uma instância do objeto
            T item = new T();

            // pega os campos para poder montar o select
            List<Campo> campos = Montador.GetCampos(item);

            // monta o select e filtra pelo campo chave
            string sql = GetSqlSelect(item, string.Format("{0}={1}", GetIdFieldName(campos), id));

            using (MySqlConnection conexao = new MySqlConnection(GetStringConexao()))
            using (Comando comando = new Comando(conexao, sql))
            using (Leitor leitor = comando.Select())
            {
                // tem retorno
                if (leitor.RecordCount > 0)
                    // percorre as propriedades
                    foreach (PropertyInfo property in Auxiliar.PropertySimple(item))
                    {
                        // valor busta pelo nome do campo
                        object valor = leitor.GetObject(Auxiliar.GetColumnName(property));

                        if ((valor != null) && (!(valor is System.DBNull)))
                        {
                            property.SetValue(item,
                                                valor.GetType().Name.Equals("TimeSpan") ? valor.ToString() : valor.GetType().Name.Equals("SByte") ? (((sbyte)valor == 1) ? true : false) : valor, null);
                        }
                    }
            }

            return item;
        }
Пример #2
0
        public IActionResult Excluir(Montador montador)
        {
            var montadores = service.buscarPorId(montador.Id);

            service.Apagar(montadores);
            return(RedirectToAction("lista"));
        }
 public ActionResult Excluir(Montador montador)
 {
     montador = montadorRepository.BuscaMontador(montador.Id);
     montadorRepository.Excluir(montador);
     TempData["SuccessMessage"] = "Registro excluido com sucesso.";
     return(RedirectToAction("index"));
 }
Пример #4
0
        public Montador BuscarPorID(int id)
        {
            SqlCommand comando = new SqlCommand();

            comando.CommandType = CommandType.Text;
            comando.CommandText = "SELECT * FROM Montadores Where montadorID=@id";

            comando.Parameters.AddWithValue("@id", id);

            Conexao       con = new Conexao();
            SqlDataReader dr  = Conexao.ExecutarSelect(comando);

            Montador objMontador = new Montador();

            if (dr.HasRows)
            {
                dr.Read();
                objMontador.Id      = Convert.ToInt32(dr["montadorID"]);
                objMontador.Nome    = (string)dr["nome"];
                objMontador.Cpf     = (string)dr["cpf"];
                objMontador.Salario = Convert.ToDecimal(dr["salario"]);
            }
            else
            {
                objMontador = null;
            }
            return(objMontador);
        }
Пример #5
0
        public IList <Montador> SelecionarTodas()
        {
            SqlCommand comando = new SqlCommand();

            comando.CommandType = CommandType.Text;
            comando.CommandText = "SELECT * FROM Montadores";


            SqlDataReader dr = Conexao.ExecutarSelect(comando);

            IList <Montador> montadores = new List <Montador>();

            if (dr.HasRows)
            {
                while (dr.Read())
                {
                    Montador objMontador = new Montador();

                    objMontador.Id      = Convert.ToInt32(dr["montadorID"]);
                    objMontador.Nome    = (string)dr["nome"];
                    objMontador.Cpf     = (string)dr["cpf"];
                    objMontador.Salario = Convert.ToDecimal(dr["salario"]);

                    montadores.Add(objMontador);
                }
            }
            else
            {
                montadores = null;
            }
            return(montadores);
        }
Пример #6
0
        public IList <Montador> BuscarPorNome(string nomeBusca)
        {
            SqlCommand comando = new SqlCommand();

            comando.CommandType = CommandType.Text;
            comando.CommandText = "SELECT * FROM Montadores Where nome LIKE @nome ";

            comando.Parameters.AddWithValue("@nome", "%" + nomeBusca + "%");

            Conexao       con = new Conexao();
            SqlDataReader dr  = Conexao.ExecutarSelect(comando);

            IList <Montador> listaDeMontadores = new List <Montador>();

            if (dr.HasRows)
            {
                while (dr.Read())
                {
                    Montador objMontador = new Montador();
                    objMontador.Id      = Convert.ToInt32(dr["montadorID"]);
                    objMontador.Nome    = (string)dr["nome"];
                    objMontador.Cpf     = (string)dr["cpf"];
                    objMontador.Salario = Convert.ToDecimal(dr["salario"]);
                    listaDeMontadores.Add(objMontador);
                }
            }
            else
            {
                listaDeMontadores = null;
            }
            return(listaDeMontadores);
        }
Пример #7
0
        public void Deletar(Montador objMontador)
        {
            SqlCommand comando = new SqlCommand();

            comando.CommandType = CommandType.Text;
            comando.CommandText = "DELETE Montadores WHERE montadorID=@id ";

            comando.Parameters.AddWithValue("@id", objMontador.Id);

            Conexao.ExecutarCrud(comando);
        }
Пример #8
0
 public IActionResult Novo(Montador montador)
 {
     if (ModelState.IsValid)
     {
         service.Adicionar(montador);
         TempData["Mensagem"] = "Gravado com Sucesso";
         return(RedirectToAction("lista"));
     }
     ViewBag.MensagemErro = "Preencha os campos obrigatórios";
     return(View(montador));
 }
Пример #9
0
 public ActionResult Novo(Montador m)
 {
     if (ModelState.IsValid)
     {
         m.Save();
         return(RedirectToAction("Listar"));
     }
     else
     {
         return(View(m));
     }
 }
 public ActionResult Editar(Montador montador)
 {
     if (ModelState.IsValid)
     {
         montadorRepository.Editar(montador);
         TempData["SuccessMessage"] = "Registro editado com sucesso.";
         return(RedirectToAction("Index"));
     }
     else
     {
         return(View());
     }
 }
Пример #11
0
        /// <summary>
        /// Exclui um objeto em banco mySQL baseando-se nos atributos do objeto para saber os campos e seus tipos
        /// Pessoa p = new Pessoa () { Id = 1 };
        /// DAL.Excluir(p);
        /// </summary>
        /// <param name="data">instância do objeto a ser eliminado.</param>
        public static void Excluir(object data)
        {
            // o Montador.GetCampos retorna num List<Campo> o nome do campo, se é PK e seu valor (Nullable<object>)
            List <Campo> campos    = Montador.GetCampos(data);
            string       tableName = Montador.GetTableName(data);

            string sqlId = string.Empty;

            foreach (Campo campo in campos)
            {
                if (campo.IsKey)
                {
                    sqlId = string.Format("{0}=@{0}", campo.Nome);
                    break;
                }
            }

            if (sqlId == string.Empty)
            {
                // algo errado
                Exception e = new Exception("Id não localizado para exclusão");
                throw e;
            }

            // vamos pegar o valor id
            long id = DAL.GetIdValue(campos);

            StringBuilder sql = new StringBuilder();

            sql.Append("delete from ");
            sql.Append(tableName);
            sql.Append(" where ");
            sql.Append(sqlId);

            using (MySqlConnection conexao = new MySqlConnection(GetStringConexao()))
                using (Comando comando = new Comando(conexao, sql.ToString()))
                {
                    conexao.Open();

                    foreach (Campo campo in campos)
                    {
                        if (campo.IsKey)
                        {
                            comando.AddParam(string.Format("@{0}", campo.Nome), campo.Valor);
                            break;
                        }
                    }

                    comando.Execute();
                }
        }
 public ActionResult Novo(Montador montador)
 {
     if (ModelState.IsValid)//valida no lado do servidor
     {
         montadorRepository.Adicionar(montador);
         TempData["SuccessMessage"] = "Cadastro realizado com sucesso.";
         return(RedirectToAction("Index"));
         //return Json(new { RedirectUrl = Url.Action("Index") });
     }
     else
     {
         return(View());
     }
 }
Пример #13
0
        public void Salvar(Montador objMontador)
        {
            SqlCommand comando = new SqlCommand();

            comando.CommandType = CommandType.Text;
            comando.CommandText = "INSERT INTO Montadores (nome, cpf, salario) VALUES (@nome, @cpf, @salario);" +
                                  "SELECT CAST(scope_identity() as int);";

            comando.Parameters.AddWithValue("@nome", objMontador.Nome);
            comando.Parameters.AddWithValue("@cpf", objMontador.Cpf);
            comando.Parameters.AddWithValue("@salario", objMontador.Salario);

            Conexao.ExecutarCrud(comando);
        }
Пример #14
0
        public void Alterar(Montador objMontador)
        {
            SqlCommand comando = new SqlCommand();

            comando.CommandType = CommandType.Text;
            comando.CommandText = " UPDATE Montadores SET nome=@nome, cpf=@cpf, salario=@salario WHERE montadorID=@id";

            comando.Parameters.AddWithValue("@nome", objMontador.Nome);
            comando.Parameters.AddWithValue("@cpf", objMontador.Cpf);
            comando.Parameters.AddWithValue("@salario", objMontador.Salario);
            comando.Parameters.AddWithValue("@id", objMontador.Id);

            Conexao.ExecutarCrud(comando);
        }
Пример #15
0
        // retorna um "select campo1, campo2, campo3 from tabela" a partir do objeto passar por parametro
        protected static string GetSqlSelect(object data, string filtro = "", string ordem = "", string group = "", int limite = 0)
        {
            // o Montador.GetCampos retorna num List<Campo> o nm_insumo do campo
            List <Campo> campos = Montador.GetCampos(data);

            StringBuilder sqlCampos = new StringBuilder();

            foreach (Campo campo in campos)
            {
                sqlCampos.Append(string.Format("{0},", campo.Nome));
            }
            sqlCampos.Remove(sqlCampos.Length - 1, 1);

            StringBuilder sql = new StringBuilder();

            sql.Append("select ");
            sql.Append(sqlCampos.ToString());
            sql.Append(" from ");
            sql.Append(Montador.GetTableName(data));

            // temos where?
            if (!filtro.Trim().Equals(string.Empty))
            {
                sql.Append(" where ");
                sql.Append(filtro);
            }

            // temos order by?
            if (!ordem.Trim().Equals(string.Empty))
            {
                sql.Append(" order by ");
                sql.Append(ordem);
            }

            // temos order by?
            if (!group.Trim().Equals(string.Empty))
            {
                sql.Append(" group by ");
                sql.Append(group);
            }

            // temos um limite definido de registros?
            if (limite > 0)
            {
                sql.Append(" limit ");
                sql.Append(limite);
            }

            return(sql.ToString());
        }
        public ActionResult Excluir(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Montador montador = montadorRepository.BuscaMontador(id);

            if (montador == null)
            {
                return(HttpNotFound());
            }
            return(View(montador));
        }
Пример #17
0
        /// <summary>
        /// Efetua um select na base e retorna um objeto T com base em um filtro (retorna apenas 1 registro)
        /// </summary>
        /// <c>
        ///    Empregado empregado = new Empregado();
        ///
        ///    Filtros filtro = new Filtros().Add(() => empregado.Nome, empregado, FiltroExpressao.Igual, "Junior");
        ///    empregado = DAL.GetObjeto<Empregado>(filtro.ToString());
        ///
        ///    if (empregado == null)
        ///        Console.WriteLine("Nao encontrado!");
        ///    else
        ///        Console.WriteLine(empregado.Id + "-" + empregado.Nome);
        /// </c>
        /// <typeparam name="T">Tipo do retorno</typeparam>
        /// <param name="filtro">Use a classe Filtros para montar o filtro</param>
        /// <returns>Retorna uma instância do Tipo</returns>
        public static T GetObjeto<T>(string filtro = "") where T : class, new()
        {
            // cria uma instância do objeto
            T item = new T();

            // pega os campos para poder montar o select
            List<Campo> campos = Montador.GetCampos(item);

            // monta o select e filtra pelo campo chave
            string sql = GetSqlSelect(new T(), filtro);

            using (MySqlConnection conexao = new MySqlConnection(GetStringConexao()))
            using (Comando comando = new Comando(conexao, sql))
            using (Leitor leitor = comando.Select())
            {
                try
                {
                    // não tem nenhum? volta nulo
                    if (leitor.RecordCount == 0)
                        return null;

                    // percorre as propriedades
                    foreach (PropertyInfo property in Auxiliar.PropertySimple(item))
                    {
                        // valor busta pelo nome do campo
                        object valor = leitor.GetObject(Auxiliar.GetColumnName(property));
                        if ((valor != null) && (!(valor is System.DBNull)))
                        {
                            property.SetValue(item,
                                                valor.GetType().Name.Equals("TimeSpan") ? valor.ToString() : valor.GetType().Name.Equals("SByte") ? (((sbyte)valor == 1) ? true : false) : valor, null); ;
                        }
                    }
                }
                catch (Exception ex)
                {
                    // throw ex;
                }
            }

            return item;
        }
Пример #18
0
        /// <summary>
        /// Efetua um select na base e retorna um objeto T com base no seu primary key
        /// <c>Empresa empresa = DAL.GetObjetoById<Empresa>(3);</c>
        /// </summary>
        /// <typeparam name="T">Tipo do retorno</typeparam>
        /// <param name="id">Código id para buscar o objeto na base</param>
        /// <returns>Retorna uma instância do Tipo</returns>
        public static T GetObjetoById <T>(int id) where T : class, new()
        {
            // cria uma instância do objeto
            T t = new T();

            // pega os campos para poder montar o select
            List <Campo> campos = Montador.GetCampos(t);

            // monta o select e filtra pelo campo chave
            string sql = GetSqlSelect(t, string.Format("{0}={1}", GetIdFieldName(campos), id));

            using (MySqlConnection conexao = new MySqlConnection(GetStringConexao()))
                using (Comando comando = new Comando(conexao, sql))
                    using (Leitor leitor = comando.Select())
                    {
                        // tem retorno
                        if (leitor.RecordCount > 0)
                        {
                            // percorre as propriedades
                            foreach (PropertyInfo property in Auxiliar.PropertySimple(t))
                            {
                                // valor busta pelo nm_insumo do campo
                                object valor = leitor.GetObject(Auxiliar.GetColumnName(property));

                                if ((valor != null) && (!(valor is System.DBNull)))
                                {
                                    try
                                    {
                                        property.SetValue(t, valor, null);
                                    }
                                    catch (Exception e)
                                    {
                                        Console.WriteLine(e.Message);
                                    }
                                }
                            }
                        }
                    }

            return(t);
        }
Пример #19
0
        /// <summary>
        /// Efetua um select na base e retorna um objeto T com base em um filtro (retorna apenas 1 registro)
        /// </summary>
        /// <c>
        ///    Empregado empregado = new Empregado();
        ///
        ///    Filtros filtro = new Filtros().Add(() => empregado.Nome, empregado, FiltroExpressao.Igual, "Junior");
        ///    empregado = DAL.GetObjeto<Empregado>(filtro.ToString());
        ///
        ///    if (empregado == null)
        ///        Console.WriteLine("Nao encontrado!");
        ///    else
        ///        Console.WriteLine(empregado.Id + "-" + empregado.Nome);
        /// </c>
        /// <typeparam name="T">Tipo do retorno</typeparam>
        /// <param name="filtro">Use a classe Filtros para montar o filtro</param>
        /// <returns>Retorna uma instância do Tipo</returns>
        public static T GetObjeto <T>(string filtro = "") where T : class, new()
        {
            // cria uma instância do objeto
            T t = new T();

            // pega os campos para poder montar o select
            List <Campo> campos = Montador.GetCampos(t);

            // monta o select e filtra pelo campo chave
            string sql = GetSqlSelect(new T(), filtro);

            using (MySqlConnection conexao = new MySqlConnection(GetStringConexao()))
                using (Comando comando = new Comando(conexao, sql))
                    using (Leitor leitor = comando.Select())
                    {
                        // não tem nenhum? volta nulo
                        if (leitor.RecordCount == 0)
                        {
                            return(null);
                        }

                        // percorre as propriedades
                        foreach (PropertyInfo property in Auxiliar.PropertySimple(t))
                        {
                            // valor busta pelo nm_insumo do campo
                            object valor = leitor.GetObject(Auxiliar.GetColumnName(property));

                            if ((valor != null) && (!(valor is System.DBNull)))
                            {
                                property.SetValue(t, valor, null);
                            }
                        }
                    }

            return(t);
        }
Пример #20
0
 public ActionResult Editar(Montador objMontador)
 {
     objMontador.Save();
     return(RedirectToAction("Listar"));
 }
Пример #21
0
        /// <summary>
        /// Grava um objeto mestre e na mesma transação os filhos no list.
        /// <c>
        ///    List<Empresa> lista = new List<Empresa>();
        ///    lista.Add(new Empresa() { Nome = "empresa1" });
        ///    lista.Add(new Empresa() { Nome = "empresa2" });
        ///    lista.Add(new Empresa() { Nome = "empresa3" });
        ///    lista.Add(new Empresa() { Nome = "empresa4" });
        ///    lista.Add(new Empresa() { Nome = "empresa5" });
        ///
        ///    int registros_gravados = DAL.GravarList<Empresa>(lista);
        ///
        ///    Console.WriteLine("Total de registros gravados: " + registros_gravados.ToString());
        /// </c>
        /// </summary>
        /// <typeparam name="T">Tipo do objeto a ser gravado</typeparam>
        /// <param name="objMestre">Objeto pai</param>
        /// <param name="listDetalhes">Lista de T (filhos)</param>
        /// <returns>O id do registro pai</returns>
        public static long GravarMestreDetalhe<T>(object objMestre, List<T> listDetalhes)
        {
            long idRetorno = Montador.GetKeyId(objMestre);

            // o Montador.GetCampos retorna num List<Campo> o nome do campo, se é PK e seu valor (Nullable<object>)
            List<Campo> camposMestre = Montador.GetCampos(objMestre);
            string tableNameMestre = Montador.GetTableName(objMestre);

            using (MySqlConnection conexao = new MySqlConnection(GetStringConexao()))
            using (Transacao transacao = new Transacao(conexao))
            {
                try
                {
                    #region mestre
                    using (Comando comando = new Comando(transacao, GetSqlInsertUpdate(tableNameMestre, camposMestre)))
                    {
                        foreach (Campo campo in camposMestre)
                        {
                            comando.AddParam(string.Format("@{0}", campo.Nome), (campo.Valor ?? DBNull.Value));
                        }

                        comando.Execute();
                        // se é inserção então lemos o ultimo id
                        if (idRetorno == 0)
                            idRetorno = comando.LastInsertId;
                    }
                    #endregion

                    #region detalhes
                    if (listDetalhes.Count > 0)
                    {
                        // pegamos o nome do campo FK no primeiro objeto da lista
                        string campoDetalheFK = Montador.GetFieldFK(listDetalhes[0]);
                        // montamos a estrutura base do SQL 
                        string tableNameDetalhes = Montador.GetTableName(listDetalhes[0]);
                        List<Campo> camposDetalhes = Montador.GetCampos(listDetalhes[0]);

                        using (Comando comando = new Comando(transacao, GetSqlInsertUpdate(tableNameDetalhes, camposDetalhes)))
                        {
                            // percorre os objetos da lista
                            foreach (Object obj in listDetalhes)
                            {
                                // atualiza os valores
                                camposDetalhes = Montador.GetCampos(obj);
                                foreach (Campo campo in camposDetalhes)
                                {
                                    // o campo atual é FK?  e o valor é ZERO (null converte pra zero) ?
                                    if (campo.Nome.Equals(campoDetalheFK) && (int)(campo.Valor ?? 0) == 0)
                                        campo.Valor = idRetorno;

                                    comando.AddParam(string.Format("@{0}", campo.Nome), (campo.Valor ?? DBNull.Value));
                                }
                                comando.Execute();
                                // limpa os parâmetros e vamos para o próximo
                                comando.ClearParam();
                            }
                        }
                    }
                    #endregion
                    transacao.Commit();
                }
                catch (Exception ex)
                {
                    transacao.RollBack();
                    throw ex;
                }
            }
            return idRetorno;
        }
 public PartialViewResult _TabelaPartial(Montador montador)
 {
     return(PartialView(montadorRepository.ListaMontador().OrderBy(p => p.Nome)));
 }
 public void Excluir(Montador montador)
 {
     db.Montador.Remove(montador);
     db.SaveChanges();
 }
 public void Editar(Montador montador)
 {
     db.Entry(montador).State = EntityState.Modified;
     db.SaveChanges();
 }
 public void Adicionar(Montador montador)
 {
     db.Montador.Add(montador);
     db.SaveChanges();
 }
Пример #26
0
 public IActionResult Alterar(Montador montador)
 {
     service.Alterar(montador);
     return(RedirectToAction("lista"));
 }
Пример #27
0
        public IActionResult Alterar(int id)
        {
            Montador montador = service.buscarPorId(id);

            return(View(montador));
        }