public JsonResult EditarUsuarios(Usuarios oUsuario, String oper)
        {
            JsonResult jsonData = null;
            try
            {
                BaseDatosTorneos bdTorneos = new BaseDatosTorneos();
                int idAsociacion = Utilidades.ObtenerValorSession("idAsociacion");
                int nContador = (from u in bdTorneos.Usuarios
                                    where  u.cedula == oUsuario.cedula &&
                                        u.id != oUsuario.id &&
                                        u.idAsociacion == idAsociacion
                                    select u.id
                                ).Count();
                if (nContador > 0)
                {
                    return jsonData = Json(new { estado = "exito", mensaje = "Ya existe un Usuario con el código: " + oUsuario.cedula, estadoValidacion = "falloLlave" });
                }
                switch (oper)
                {
                    case "add":
                        Usuarios oUsuarioNuevo = new Usuarios();
                        oUsuarioNuevo.cedula = oUsuario.cedula;
                        oUsuarioNuevo.contrasena = Utilidades.CalcularMD5("123456");
                        oUsuarioNuevo.correo = oUsuario.correo;
                        oUsuarioNuevo.cuenta = oUsuario.cuenta;
                        oUsuarioNuevo.nombre = oUsuario.nombre;
                        oUsuarioNuevo.observaciones = oUsuario.observaciones;
                        oUsuarioNuevo.telefono1 = oUsuario.telefono1;
                        oUsuarioNuevo.tipo = oUsuario.tipo;
                        oUsuarioNuevo.idTorneo = oUsuario.idTorneo;
                        oUsuarioNuevo.activoContrasena = false;
                        oUsuarioNuevo.activo = oUsuario.activo;
                        oUsuarioNuevo.idAsociacion = Utilidades.ObtenerValorSession("idAsociacion");
                        oUsuarioNuevo.id = 0;

                        bdTorneos.AddToUsuarios(oUsuarioNuevo);
                        bdTorneos.SaveChanges();
                        bdTorneos.Detach(oUsuarioNuevo);

                        if (oUsuarioNuevo.tipo == (int)enumTipoUsuario.Asociado) {
                            CrearDisponibilidad(oUsuarioNuevo);
                        }

                        jsonData = Json(new { estado = "exito", mensaje = "", ObjetoDetalle = oUsuarioNuevo, estadoValidacion = "exito" });
                        break;
                    case "del":
                        Usuarios oUsuarioEliminado = (from u in bdTorneos.Usuarios
                                                        where u.id == oUsuario.id
                                                        select u).Single();

                        jsonData = Json(new { estado = "exito", mensaje = "", ObjetoDetalle = oUsuarioEliminado, estadoValidacion = "exito" });

                        bdTorneos.DeleteObject(oUsuarioEliminado);
                        bdTorneos.SaveChanges();
                        break;
                    case "edit":
                        Usuarios oUsuarioEditado = (from u in bdTorneos.Usuarios
                                                    where u.id == oUsuario.id
                                                    select u).Single();

                        if (oUsuarioEditado.tipo != (int)enumTipoUsuario.Asociado && oUsuario.tipo == (int)enumTipoUsuario.Asociado)
                        {
                            CrearDisponibilidad(oUsuarioEditado);
                        }
                        if (oUsuarioEditado.tipo == (int)enumTipoUsuario.Asociado && oUsuario.tipo != (int)enumTipoUsuario.Asociado)
                        {
                            EliminarDisponibilidad(oUsuarioEditado);
                        }

                        oUsuarioEditado.cedula = oUsuario.cedula;
                        oUsuarioEditado.correo = oUsuario.correo;
                        oUsuarioEditado.cuenta = oUsuario.cuenta;
                        oUsuarioEditado.nombre = oUsuario.nombre;
                        oUsuarioEditado.observaciones = oUsuario.observaciones;
                        oUsuarioEditado.telefono1 = oUsuario.telefono1;
                        oUsuarioEditado.tipo = oUsuario.tipo;
                        oUsuarioEditado.idTorneo = oUsuario.idTorneo;
                        oUsuarioEditado.activo = oUsuario.activo;

                        bdTorneos.SaveChanges();
                        bdTorneos.Detach(oUsuarioEditado);

                        jsonData = Json(new { estado = "exito", mensaje = "", ObjetoDetalle = oUsuarioEditado, estadoValidacion = "exito" });
                        break;
                }
            }
            catch {
                jsonData = Json(new { estado = "error", mensaje = "Error cargando datos" });
            }
            return jsonData;
        }
 private void EliminarDisponibilidad(Usuarios oUsuario)
 {
     BaseDatosTorneos bdTorneos = new BaseDatosTorneos();
     List<Disponibilidad> oDisponibilidades = (from d in bdTorneos.Disponibilidad
                                               where d.idArbitro == oUsuario.id
                                               select d).ToList<Disponibilidad>();
     for (int indice = 0; indice < oDisponibilidades.Count(); indice++)
     {
         bdTorneos.DeleteObject(oDisponibilidades[indice]);
         bdTorneos.SaveChanges();
     }
 }