public async Task <IActionResult> Putcrm_usuariovsgrupo(int id, crm_usuariovsgrupo crm_usuariovsgrupo)
        {
            if (id != crm_usuariovsgrupo.id_usuariovsgrupo)
            {
                return(BadRequest());
            }

            _context.Entry(crm_usuariovsgrupo).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!crm_usuariovsgrupoExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <ActionResult> PutUsuario(int id, PostUsuario postUsuario)
        {
            Usuario usuario = postUsuario.Usuario;

            if (usuario != null && id != usuario.id_usuario)
            {
                return(BadRequest());
            }

            _context.Entry(usuario).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync().ConfigureAwait(true);

                if (postUsuario?.crm_grupousuario.Count > 0)
                {
                    postUsuario.crm_grupousuario.ForEach(delegate(crm_grupousuario value){
                        crm_usuariovsgrupo crm_Usuariovsgrupo = new crm_usuariovsgrupo();
                        crm_Usuariovsgrupo.id_usuario         = usuario.id_usuario;
                        crm_Usuariovsgrupo.id_grupousuario    = value.id_grupousuario;
                        _context.crm_usuariovsgrupo.Add(crm_Usuariovsgrupo);
                        _context.SaveChanges();
                    });
                }
                if (postUsuario?.crm_grupousuariodelete.Count > 0)
                {
                    postUsuario.crm_grupousuariodelete.ForEach(delegate(crm_grupousuario value){
                        var crm_Usuariovsgrupo = _context.crm_usuariovsgrupo.Where(
                            b => b.id_usuario == usuario.id_usuario &&
                            b.id_grupousuario == value.id_grupousuario
                            ).First();
                        _context.crm_usuariovsgrupo.Remove(crm_Usuariovsgrupo);
                        _context.SaveChanges();
                    });
                }
            }
            catch (DbUpdateConcurrencyException) when(!UsuarioExists(id))
            {
                return(NotFound());
            }

            return(Ok(usuario));
        }
        public async Task <ActionResult> PostUsuario(PostUsuario postUsuario)
        {
            Usuario usuario = postUsuario.Usuario;

            var result = ValidadorUsuario.ValidaUsuario(usuario);

            if (result == null)
            {
                return(Ok("Voçê deve preencher todos os dados Obrigarios."));
            }
            usuario = (Usuario)result;
            _context.Usuario.Add(usuario);
            await _context.SaveChangesAsync().ConfigureAwait(false);

            postUsuario.crm_grupousuario.ForEach(delegate(crm_grupousuario value){
                crm_usuariovsgrupo crm_Usuariovsgrupo = new crm_usuariovsgrupo();
                crm_Usuariovsgrupo.id_usuario         = usuario.id_usuario;
                crm_Usuariovsgrupo.id_grupousuario    = value.id_grupousuario;
                _context.crm_usuariovsgrupo.Add(crm_Usuariovsgrupo);
                _context.SaveChanges();
            });
            return(CreatedAtAction("GetUsuario", new { id = usuario.id_usuario }, usuario));
        }
        public async Task <ActionResult <crm_usuariovsgrupo> > Postcrm_usuariovsgrupo(crm_usuariovsgrupo crm_usuariovsgrupo)
        {
            _context.crm_usuariovsgrupo.Add(crm_usuariovsgrupo);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("Getcrm_usuariovsgrupo", new { id = crm_usuariovsgrupo.id_usuariovsgrupo }, crm_usuariovsgrupo));
        }