public void insert(GrupoForm model)
        {
            using (var transaction = db.Database.BeginTransaction())
            {
                try
                {
                    grupo grupo = new grupo();
                    grupo.nombre = model.Grupo;
                    grupo.fecha_registro = DateTime.Now;
                    db.grupoes.Add(grupo);
                    db.SaveChanges();

                    foreach (string usuario in model.Usuarios)
                    {
                        this.insertarUsuarioGrupo(grupo, usuario);

                    }

                    transaction.Commit();

                }
                catch (Exception)
                {
                    transaction.Rollback();
                    throw;
                }
            }
        }
        public ActionResult RegistrarGrupo(GrupoForm model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    _repo.insert(model);
                    TempData["Success"] = "Se registro el grupo personalizado satisfactoriamente.";
                }

                return RedirectToAction("Index");
            }
            catch (Exception)
            {

                TempData["Error"] = "No se pudieron guardar los cambios, intente de nuevo por favor.";

                return RedirectToAction("Index");
            }
        }
        public JsonResult ValidarGrupo(GrupoForm model)
        {
            List<string> result = _repo.ValidarGrupo(model);

            if (result.Count > 0)
                return Json(result.ToArray(), JsonRequestBehavior.AllowGet);
            else
                return Json(true, JsonRequestBehavior.AllowGet);
        }
        public List<string> ValidarGrupo(GrupoForm model)
        {
            List<string> result = new List<string>();
            int numUsuarios = 0;

            if (model.Grupo == null)
                result.Add("Digite el nombre del grupo personalizado");

            if (model.Usuarios != null)
            {
                foreach (string username in model.Usuarios)
                {
                    if (username != "")
                    {
                        var usuario = LDAPQuery.getUserByUID(username);

                        if (usuario.CN == null)
                            result.Add("El usuario " + username + " no existe en el directorio activo");
                        else
                            numUsuarios++;
                    }
                    else
                    {
                        result.Add("Hay un campo de usuario sin diligenciar");
                    }
                }
            }

            if (numUsuarios <= 0)
                result.Add("Seleccione al menos un usuario para el grupo personalizado.");

            return result;
        }