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! "); } }
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); }