示例#1
0
        public bool AlterarCompetencias(int?idGerente, int?idFuncionario, List <CompetenciaNivelDTO> listaCompetenciasComNivel)
        {
            try
            {
                using (SAARHEntities db = new SAARHEntities())
                {
                    List <int> idsCompetencias = new List <int>();

                    foreach (CompetenciaNivelDTO comp in listaCompetenciasComNivel)
                    {
                        idsCompetencias.Add(comp.CompID);
                    }

                    int idFuncionarioQuery = Convert.ToInt32(idFuncionario);
                    var query = from uac in db.Usu_Aval_Comp
                                where idFuncionarioQuery == uac.uac_usu_id &&
                                idsCompetencias.Contains(uac.uac_comp_id)
                                select uac;

                    foreach (Usu_Aval_Comp uacomp in query.ToList())
                    {
                        uacomp.Avaliacao.aval_atual = false;
                        db.SaveChanges();
                    }

                    foreach (CompetenciaNivelDTO comp in listaCompetenciasComNivel)
                    {
                        Avaliacao novaAvaliacao = new Avaliacao();
                        novaAvaliacao.aval_nivel    = comp.CompNivel;
                        novaAvaliacao.aval_data     = DateTime.Now;
                        novaAvaliacao.aval_usu_id   = Convert.ToInt32(idGerente);
                        novaAvaliacao.aval_atual    = true;
                        novaAvaliacao.Usu_Aval_Comp = new List <Usu_Aval_Comp>();
                        int           idNovaAvaliacao = novaAvaliacao.aval_id;
                        Usu_Aval_Comp novoUAC         = new Usu_Aval_Comp();
                        novoUAC.uac_aval_id = idNovaAvaliacao;
                        novoUAC.uac_comp_id = comp.CompID;
                        novoUAC.uac_usu_id  = Convert.ToInt32(idFuncionario);
                        novaAvaliacao.Usu_Aval_Comp.Add(novoUAC);
                        db.Avaliacaos.Add(novaAvaliacao);
                        db.SaveChanges();
                    }
                }
                return(true);
            }
            catch (Exception)
            {
                throw new Excecoes.TipoCompetenciaExcecao("Ocorreu um problema ao atualizar as competências deste funcionário! ");
            }
        }
示例#2
0
        public bool SalvarPerfil(int idFuncionario, List <CompetenciaNivelDTO> listaNovasCompetencias)
        {
            try
            {
                using (SAARHEntities db = new SAARHEntities())
                {
                    foreach (CompetenciaNivelDTO comp in listaNovasCompetencias)
                    {
                        // verifica se não existe alguma avaliação para esta competência, para este funcionario.
                        var query = from uac in db.Usu_Aval_Comp
                                    where uac.uac_usu_id == idFuncionario &&
                                    uac.uac_comp_id == comp.CompID
                                    select uac;

                        if (query.Count() > 0)
                        {
                            return(false);
                        }
                        else
                        {
                            Avaliacao novaAval = new Avaliacao();
                            novaAval.aval_usu_id = idFuncionario;
                            novaAval.aval_nivel  = comp.CompNivel;
                            novaAval.aval_data   = DateTime.Now;
                            novaAval.aval_atual  = true;

                            db.Avaliacaos.Add(novaAval);
                            db.SaveChanges();

                            int idNewAval = novaAval.aval_id;

                            Usu_Aval_Comp novaUac = new Usu_Aval_Comp();
                            novaUac.uac_aval_id = idNewAval;
                            novaUac.uac_usu_id  = idFuncionario;
                            novaUac.uac_comp_id = comp.CompID;

                            db.Usu_Aval_Comp.Add(novaUac);
                            db.SaveChanges();
                        }
                    }
                }
            }
            catch (Exception)
            {
                throw new Excecoes.AvaliacaoExcecao("Ocorreu um problema ao salvar o perfil!");
            }
            return(true);
        }