public bool VerificaPrestadorMaster(string login)
        {
            var dadosFinal = new UsuarioPerfilDto();
            var query      = DbSet.AsQueryable()
                             .Include(x => x.Perfil)
                             .ThenInclude(x => x.VinculoPerfilFuncionalidades)
                             .ThenInclude(x => x.Funcionalidade);

            var dados = query.Where(x => x.LgUsuario.ToUpper() == login.ToUpper());

            var result = dados.Select(x => new UsuarioPerfilDto
            {
                LgUsuario       = x.LgUsuario,
                NmPerfil        = x.Perfil.NmPerfil,
                IdPerfil        = x.IdPerfil,
                Funcionalidades = x.Perfil.VinculoPerfilFuncionalidades.Select(y => y.Funcionalidade.NmFuncionalidade).ToList()
            }).ToList();

            if (result != null && result.Any())
            {
                dadosFinal = new UsuarioPerfilDto
                {
                    LgUsuario       = result.FirstOrDefault().LgUsuario,
                    NmPerfil        = string.Join(",", result.Select(x => x.NmPerfil).ToList()),
                    Funcionalidades = result.SelectMany(x => x.Funcionalidades).Distinct().ToList()
                };
            }

            return(dadosFinal.Funcionalidades.Any(x => x.Equals("PrestadorMaster", StringComparison.InvariantCultureIgnoreCase)));
        }
        public UsuarioPerfilDto ObterUsuarioPerfilDto(string login)
        {
            var dadosFinal = new UsuarioPerfilDto();
            var query      = DbSet.AsQueryable()
                             .Include(x => x.Perfil)
                             .ThenInclude(x => x.VinculoPerfilFuncionalidades)
                             .ThenInclude(x => x.Funcionalidade);

            var dados = query.Where(x => x.LgUsuario.ToUpper() == login.ToUpper());

            var result = dados.Select(x => new UsuarioPerfilDto
            {
                LgUsuario       = x.LgUsuario,
                NmPerfil        = x.Perfil.NmPerfil,
                IdPerfil        = x.IdPerfil,
                Funcionalidades = x.Perfil.VinculoPerfilFuncionalidades.Select(y => y.Funcionalidade.NmFuncionalidade).ToList()
            }).ToList();

            if (result != null && result.Any())
            {
                dadosFinal = new UsuarioPerfilDto
                {
                    LgUsuario       = result.FirstOrDefault().LgUsuario,
                    NmPerfil        = string.Join(",", result.Select(x => x.NmPerfil).ToList()),
                    Funcionalidades = result.SelectMany(x => x.Funcionalidades).Distinct().ToList()
                };
            }

            return(dadosFinal);
        }
        public async Task <IActionResult> Post(UsuarioPerfilDto usuarioPerfilDto)
        {
            var usuarioPerfil = _mapper.Map <UsuarioPerfil>(usuarioPerfilDto);
            await _usuarioPerfilService.Agregar(usuarioPerfil);

            usuarioPerfilDto = _mapper.Map <UsuarioPerfilDto>(usuarioPerfil);

            var response = new ApiResponse <UsuarioPerfilDto>(usuarioPerfilDto);

            return(Ok(response));
        }
        public async Task <IActionResult> AdicionarPerfilUsuario([FromRoute] Guid id, [FromBody] UsuarioPerfilDto usuarioPerfil)
        {
            if (!ModelState.IsValid)
            {
                return(CustomResponse(ModelState));
            }

            await _usuarioService.AdicionarPerfilUsuario(new UsuarioPerfil(usuarioPerfil.PerfilId, id));

            return(CustomResponse());
        }