public void AtualizarPerfil(Perfil perfil) { var perfilDb = _perfilRepository.ObterPerfilComVinculo(perfil.Id); var funcionalidades = _funcionalidadeRepository.BuscarTodos(); var funcionalidadesRemovidas = perfilDb.VinculoPerfilFuncionalidades.Where(x => !perfil.VinculoPerfilFuncionalidades.Any(y => y.IdFuncionalidade == x.IdFuncionalidade)); var funcionalidadesMantidas = perfil.VinculoPerfilFuncionalidades.Where(x => perfilDb.VinculoPerfilFuncionalidades.Any(y => y.IdFuncionalidade == x.IdFuncionalidade)); var funcionalidadesAdicionadas = perfil.VinculoPerfilFuncionalidades.Where(x => !perfilDb.VinculoPerfilFuncionalidades.Any(y => y.Id == x.Id) && !funcionalidadesMantidas.Any(y => y.IdFuncionalidade == x.IdFuncionalidade)); if (funcionalidadesRemovidas.Any()) { _vinculoPerfilFuncionalidadeRepository.RemoverVinculos(funcionalidadesRemovidas.ToList()); } if (funcionalidadesAdicionadas.Any()) { foreach (var item in funcionalidadesAdicionadas.ToList()) { perfilDb.VinculoPerfilFuncionalidades.Add(item); } } perfilDb.FlAtivo = perfil.FlAtivo; perfilDb.NmModulo = perfil.NmModulo; perfilDb.NmPerfil = perfil.NmPerfil; _perfilRepository.Update(perfilDb); }
public List <Funcionalidade> BuscarTodasFuncionalidades() { var result = _funcionalidadeRepository.BuscarTodos(); return(result.ToList()); }