Exemple #1
0
        internal static async Task <IEnumerable <SubscriptionModel> > GetAllCommunitiesAsync(this RealmSettings realmSettings, SocialMediaType socialMediaType)
        {
            var user = await realmSettings.GetUser();

            var realmUrl = new Uri($"realms://{realmSettings.RealmServerUrl}/{realmSettings.RealmName}");
            var realm    = await user.GetRealm(realmUrl);

            return(SubscriptionsHelper.GetDefaultCommunitySubscriptionsByRealm(realm)
                   .Where(x => x.Type == socialMediaType));
        }
        /// <summary>
        /// Quita la dependencia de notifiaciones hacia la base de datos
        /// </summary>
        /// <param name="Usuario">Identificador del usuario</param>
        public void RemoveNotification(Usuario Usuario)
        {
            var RH           = new RegistroNotificacionesHelper();
            var RegistroNoti = RH.Get(Usuario.UsuarioId);

            if (RegistroNoti != null)
            {
                var SH = new SubscriptionsHelper();
                SH.Delete(RegistroNoti.SuscripcionId); // Mata la suscripción de dependecia con la base de datos
                RH.Delete(Usuario.UsuarioId);
            }
        }
        public void RegisterNotification(DateTime currentTime, Usuario usuario)
        {
            USER = usuario == null ? USER : usuario;

            if (USER != null)
            {
                var ConnString = ConfigurationManager.ConnectionStrings["NotificationsConnectionString"].ConnectionString;
                var query      = @"SELECT [NotificacionId] FROM [dbo].[Notificaciones]" +
                                 " WHERE [UsuarioId] = @UsuarioId AND [AgregadoEn] > @AgregadoEn";

                using (SqlConnection con = new SqlConnection(ConnString))
                {
                    SqlCommand cmd = new SqlCommand(query, con);
                    cmd.Parameters.AddWithValue("@AgregadoEn", currentTime);
                    cmd.Parameters.AddWithValue("@UsuarioId", usuario.UsuarioId);

                    if (con.State != System.Data.ConnectionState.Open)
                    {
                        con.Open();
                    }
                    cmd.Notification = null;

                    SqlDependency sqlDep = new SqlDependency(cmd);
                    sqlDep.OnChange += SqlDep_OnChange;

                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                    }
                }
                var SH   = new SubscriptionsHelper();
                var Subs = SH.Get(); // Obtiene la suscripción actual de dependencia con la base de datos
                var RH   = new RegistroNotificacionesHelper();
                RH.Post(             // Agrega el registro para controlar las suscripciones
                    new RegistroNotificaciones()
                {
                    RegistroNotificacionId = 0,
                    SuscripcionId          = Subs,
                    UsuarioId = USER.UsuarioId
                }
                    );
            }
        }
 internal async Task ResetSubscriptionsAsync()
 {
     Helpers.Settings.CommunitySubscriptions = SubscriptionsHelper.GetDefaultCommunitySubscriptions();
     UpdateSubscriptions();
     await Application.Current.MainPage.DisplayAlert(string.Empty, Resources[nameof(AppResources.SubscriptionsResetedMessage)], "OK");
 }