public ObjectResult Post(PostUsuario pu)
        {
            Usuario usuario = pu.Usuario;
            var     body    = Request.Body;
            Token   token   = new Token();

            usuario.IdEscuela = token.IdEscuela;
            return(Ok(usuarioService.EditarUsuario(usuario, pu.Operacion)));
        }
        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));
        }