/// <summary>
 /// Añade una subscripción de un usuario a un grupo
 /// </summary>
 /// <param name="groupId">Grupo de la subscripción</param>
 /// <param name="userId">Usuario</param>
 /// <returns>
 /// True si se pudo suscribir, false en caso contrario
 /// </returns>
 public bool AddSubscription(long groupId, long userId)
 {
     try
     {
         groups_users_subscription userSubscription = new groups_users_subscription();
         userSubscription.user_id  = userId;
         userSubscription.group_id = groupId;
         data.groups_users_subscriptions.InsertOnSubmit(userSubscription);
         data.SubmitChanges();
         return(true);
     }
     catch { return(false); }
 }
        /// <summary>
        /// Borra una subscripción para un grupo y usuario determinados
        /// </summary>
        /// <param name="groupId">Id del grupo</param>
        /// <param name="userId">Id del usuario</param>
        /// <returns>
        /// True si se pudo borrar, false en caso contrario
        /// </returns>
        public bool DeleteSubscription(long groupId, long userId)
        {
            var query = from subscriptions in data.groups_users_subscriptions
                        where subscriptions.group_id == groupId
                        where subscriptions.user_id == userId
                        select subscriptions;

            try
            {
                groups_users_subscription subscription = query.First <groups_users_subscription>();
                data.groups_users_subscriptions.DeleteOnSubmit(subscription);
                data.SubmitChanges();
                return(true);
            }
            catch
            {
                return(false);
            }
        }
        /// <summary>
        /// Gets the user subscription.
        /// </summary>
        /// <param name="groupUserSubscription">The group user subscription.</param>
        /// <returns></returns>
        private Model.Group.GroupUsers getUserSubscription(groups_users_subscription groupUserSubscription)
        {
            Model.Group.GroupUsers newGroupUserSubscription = new XareuServices.Model.Group.GroupUsers();

            newGroupUserSubscription.Group.Id   = groupUserSubscription.group_id;
            newGroupUserSubscription.Group.Name = groupUserSubscription.group.group_name;
            try
            {
                newGroupUserSubscription.Group.IsPrivate = (bool)groupUserSubscription.group.group_is_private;
            }
            catch { newGroupUserSubscription.Group.IsPrivate = false; }
            newGroupUserSubscription.Group.Owner.Id   = groupUserSubscription.group.user.user_id;
            newGroupUserSubscription.Group.Owner.Nick = groupUserSubscription.group.user.user_nick;
            newGroupUserSubscription.Group.Creation   = groupUserSubscription.group.group_creation;

            newGroupUserSubscription.User.Email = groupUserSubscription.user.user_email;
            newGroupUserSubscription.User.Id    = groupUserSubscription.user.user_id;
            newGroupUserSubscription.User.Nick  = groupUserSubscription.user.user_nick;

            return(newGroupUserSubscription);
        }