///<summary>
        ///Criando um método para gravar Projeto e relacionamento
        ///com funcionarios do mesmo projeto
        ///</summary>
        public void Cadastrar(EntidadeProjeto p, List <Funcionario> funcionarios)
        {
            int contadorDeGerente = 0;
            FuncionarioRepositorio repFuncionario = new FuncionarioRepositorio();

            foreach (Funcionario f in funcionarios)
            {
                if (repFuncionario.HastFuncaoGerente(f.IdFuncionario) != 0)
                {
                    contadorDeGerente++;
                }
            }

            if (contadorDeGerente != 0)
            {
                //relacionamento do Projeto com os Funcionarios..
                p.Funcionarios = funcionarios;

                //gravar no banco de dados..
                ProjetoRepositorio repProjeto = new ProjetoRepositorio();
                repProjeto.Insert(p);
            }
            else
            {
                throw new Exception("O Projeto deve conter pelo menos 1 Gerente.");
            }
        }
Пример #2
0
        protected void BtnCadastro_Click(object sender, EventArgs e)
        {
            //método executado quando o botão for clicado...
            try
            {
                List <Funcionario> listaFuncionarios = new List <Funcionario>();

                //percorrer as linhas do gridView
                foreach (GridViewRow linha in GridFuncionario.Rows)
                {
                    //Buscar o checkBox contido na linha do grid
                    CheckBox chkFuncionario = linha.FindControl("chkFuncionario") as CheckBox;

                    //Verificar se o checkBox esta marcado..
                    if (chkFuncionario.Checked)
                    {
                        //capturar a label que contem o id do funcionario..
                        Label lblCodigo = linha.FindControl("lblCodigo") as Label;

                        //criando um novo funcionario..
                        Funcionario f = new Funcionario();
                        f.IdFuncionario = int.Parse(lblCodigo.Text);

                        //adicionar na lista..
                        listaFuncionarios.Add(f);
                    }
                }

                //gravar o projeto
                EntidadeProjeto p = new EntidadeProjeto();
                p.NomeProjeto = txtNomeProjeto.Text;
                p.DataInicio  = DateTime.Parse(txtDataInicio.Text);
                p.DataFim     = DateTime.Parse(txtDataFim.Text);

                ProjetoBusiness business = new ProjetoBusiness();
                business.Cadastrar(p, listaFuncionarios);

                //mensagem de sucesso..
                lblMensagem.Text = "Projeto " + p.NomeProjeto + " , cadastrado com sucesso.";

                LimparCampos();
            }
            catch (Exception ex)
            {
                //imprimir mensagem de erro
                lblMensagem.Text = ex.Message;
            }
        }
Пример #3
0
        /// <summary>
        /// Método para inserir um projeto na base de dados...
        /// </summary>
        /// <param name="p">O objeto</param>
        public void Insert(EntidadeProjeto p)
        {
            OpenConnection();
            try
            {
                tr = con.BeginTransaction(); //abrindo transação...

                string queryProjeto = " INSERT INTO Projeto(NomeProjeto, DateInicio, DateFim) " +
                                      " VALUES(@NomeProjeto, @DataInicio, @DataFim) " +
                                      " SELECT SCOPE_IDENTITY() ";

                cmd = new SqlCommand(queryProjeto, con, tr);
                cmd.Parameters.AddWithValue("@NomeProjeto", p.NomeProjeto);
                cmd.Parameters.AddWithValue("@DataInicio", p.DataInicio);
                cmd.Parameters.AddWithValue("@DataFim", p.DataFim);
                p.IdProjeto = Convert.ToInt32(cmd.ExecuteScalar());

                string queryProjetoFuncionario = " INSERT INTO ProjetoFuncionario(IdProjeto, IdFuncionario) " +
                                                 " VALUES(@IdProjeto, @IdFuncionario) ";

                //varrer os funcionarios contidos no projeto..
                foreach (Funcionario f in p.Funcionarios)
                {
                    cmd = new SqlCommand(queryProjetoFuncionario, con, tr);
                    cmd.Parameters.AddWithValue("@IdProjeto", p.IdProjeto);
                    cmd.Parameters.AddWithValue("@IdFuncionario", f.IdFuncionario);
                    cmd.ExecuteNonQuery();
                }
                tr.Commit(); //executa a finaliza a transação...
            }
            catch (Exception e)
            {
                tr.Rollback();                  //Desfazendo a transação
                throw new Exception(e.Message); //retorna o erro
            }
            CloseConnection();
        }