public void BorrarCapitan(int capitanUsuarioId)
 {
     if (capitanUsuarioId > 0)
     {
         ServidorCapitan capitan = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().ServidorCapitan where o.Miembro.MiembroId == capitanUsuarioId select o).FirstOrDefault();
         if (capitan != null)
         {
             capitan.Borrar(SesionActual.Instance.getContexto <IglesiaEntities>());
         }
     }
 }
        public RegistroBasico ObtenerCapitan(int usuarioId)
        {
            ServidorCapitan entidad = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().ServidorCapitan where o.MiembroId == usuarioId select o).FirstOrDefault();

            if (entidad != null)
            {
                RegistroBasico rtn = new RegistroBasico();;
                rtn.Id          = entidad.Id;
                rtn.Descripcion = entidad.Miembro.NombreCompleto;
                return(rtn);
            }
            else
            {
                return(new RegistroBasico());
            }
        }
        /// <summary>
        /// Agrega y elimina integrantes a un grupo de servidores. El grupo de servidores depende un capitan.
        /// </summary>
        /// <param name="capitanUsuarioId">Id del miembro "capitan" del grupo de servidores</param>
        /// <param name="integrantesUsuariosNuevosId">Listado de id's de los miembros "integrantes" a agregar al grupo de servidores</param>
        /// <param name="integrantesUsuariosEliminadosId">Listado de id's de los miembros "integrantes" a eliminar del grupo de servidores</param>
        /// <returns>True = Es un nuevo grupo; False = Es un grupo existente y solo fue una actualizacion</returns>
        public bool GuardarIntegrantesPorCapitan(int capitanUsuarioId, RegistrosHelper.RegistrosDeDatos integrantesNuevosYEliminados)
        {
            bool rtn = false;

            if (capitanUsuarioId > 0 && (integrantesNuevosYEliminados.RegistrosNuevosId.Count > 0 || integrantesNuevosYEliminados.RegistrosEliminadosId.Count > 0))
            {
                ServidorCapitan    capitan = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().ServidorCapitan where o.Miembro.MiembroId == capitanUsuarioId select o).FirstOrDefault();
                ServidorIntegrante integrante;

                if (capitan == null)
                {
                    capitan           = new ServidorCapitan();
                    capitan.MiembroId = capitanUsuarioId;
                    rtn = true;
                }

                //Agregamos los nuevos integrantes (siempre y cuando no existan previamente...)
                foreach (int integranteUsuarioId in integrantesNuevosYEliminados.RegistrosNuevosId)
                {
                    if (!capitan.ServidorIntegrante.Any(o => o.MiembroId == integranteUsuarioId && o.Borrado == false))
                    {
                        integrante           = new ServidorIntegrante();
                        integrante.CapitanId = capitanUsuarioId;
                        integrante.MiembroId = integranteUsuarioId;
                        capitan.ServidorIntegrante.Add(integrante);
                    }
                }

                //Guardamos los cambios, antes de eliminar registros
                capitan.Guardar(SesionActual.Instance.getContexto <IglesiaEntities>());

                //Eliminamos los integrantes
                foreach (int integranteUsuarioId in integrantesNuevosYEliminados.RegistrosEliminadosId)
                {
                    integrante = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().ServidorIntegrante where o.MiembroId == integranteUsuarioId && o.ServidorCapitan.MiembroId == capitanUsuarioId && o.Borrado == false select o).FirstOrDefault();
                    if (integrante != null)
                    {
                        integrante.Borrar(SesionActual.Instance.getContexto <IglesiaEntities>());
                    }
                }
            }

            return(rtn);;
        }