示例#1
0
        private void httpChannel_ShellToastNotificationReceived(object sender, NotificationEventArgs e)
        {
            // Notificação recebida com o aplicativo aberto
            // Este método é chamado e os dados vem no parâmetro e.Collection (NotificationEventArgs)

            // Página destino
            string relativeUri = string.Empty;

            // Mensagem apresentada ao usuário
            StringBuilder msg = new StringBuilder();

            msg.AppendFormat("Toast Recebido {0}:\n", DateTime.Now.ToShortTimeString());

            // Recupera dados da notificação
            foreach (string key in e.Collection.Keys)
            {
                msg.AppendFormat("{0}: {1}\n", key, e.Collection[key]);

                // Página destino
                if (string.Compare(key, "wp:Param",
                                   System.Globalization.CultureInfo.InvariantCulture,
                                   System.Globalization.CompareOptions.IgnoreCase) == 0)
                {
                    relativeUri = e.Collection[key];
                }
            }

            // Mostra dados da notificação
            Dispatcher.BeginInvoke(() =>
            {
                // Mensagem apresentada ao usuário
                MessageBox.Show(msg.ToString());
                // Atualiza lista de mensagens
                //saveMessageToFile(e.Collection["wp:Text1"], e.Collection["wp:Text2"]);
                using (var dct = new bancoContext(bancoContext.ConnectionString))
                {
                    dct.CreateIfNotExists();
                    dct.Mensagem.InsertOnSubmit(new Mensagem
                    {
                        Texto1 = e.Collection["wp:Text1"],
                        Texto2 = e.Collection["wp:Text2"]
                    });
                    dct.SubmitChanges();
                }
            });
        }
        // Constructor
        public MainPage()
        {
            InitializeComponent();
            using (var dct = new bancoContext(bancoContext.ConnectionString))
            {
                dct.CreateIfNotExists();
            }
            listMsg.ItemsSource = mensagens;

            Loaded += (s, e) =>
            {
                if (!checkifUserExists())
                {
                    NavigationService.Navigate(new Uri("/PageLogin.xaml", UriKind.Relative));
                }
                else
                {
                    abrirArquivo();
                }
            };
            if (checkifUserExists())
            {
                getDados();
                using (var dct = new bancoContext(bancoContext.ConnectionString)) listMsg.ItemsSource = dct.Mensagem.ToList();
            }


            /*if (checkifUserHasMessages())
             * {
             *
             *  abrirArquivoMensagens();
             *
             * }*/



            // Sample code to localize the ApplicationBar
            //BuildLocalizedApplicationBar();
        }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            // Notificação recebida com o aplicativo fechado
            // Este método é chamado e os dados vem na QueryString
            var dic = NavigationContext.QueryString;

            Mensagem mens = new Mensagem();

            if (dic.ContainsKey("Msg1") && dic.ContainsKey("Msg2"))
            {
                using (var dtc = new bancoContext(bancoContext.ConnectionString))
                {
                    dtc.Mensagem.InsertOnSubmit(new Mensagem {
                        Texto1 = dic["Msg1"],
                        Texto2 = dic["Msg2"]
                    });
                    dtc.SubmitChanges();
                }
            }

            // Atualiza lista de mensagens
            //if (dic.ContainsKey("Msg1")) listMsg.Items.Add(dic["Msg1"]);
            //if (dic.ContainsKey("Msg2")) listMsg.Items.Add(dic["Msg2"]);
        }