protected void UpdateTaskbar(TaskbarItemProgressState state, double value) { var message = new TaskbarMessage("Window.UpdateTaskbar") { ProgressState = state, ProgressValue = value, }; this.Messenger.RaiseAsync(message).Forget(); }
private void dependency_OnChange(object sender, MySqlTableChangeEventArgs e) { if (!Logindto.SupressChange) { int count = 0; try { var query = "SELECT (SELECT COUNT(*) from mensagem_" + Logindto.Usuario + " WHERE lida='0') as quantidade, f.nome, descricao, mensagem, negocio_id FROM mensagem_" + Logindto.Usuario + " mu JOIN usuario u ON u.id = mu.usuario_from_id JOIN funcionario f ON f.id = u.funcionario_id ORDER BY mu.data DESC LIMIT 1"; bd.Conectar(); var dr = bd.RetDataReader(query); dto.Nome = dr["nome"].ToString(); dto.Descricao = dr["descricao"].ToString(); dto.Mensagem = dr["mensagem"].ToString(); dto.Negocio = Convert.ToInt32(dr["negocio_id"]).ToString("0000"); count = Convert.ToInt32(dr["quantidade"]); } catch (Exception ex) { } finally { Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => { TaskbarMessage ws = new TaskbarMessage(dto.Descricao, dto.Mensagem); ws.Show(); var targetWindow = Application.Current.Windows.Cast <Window>().FirstOrDefault(window => window is Layout) as Layout; targetWindow.btnNotificationIcon.Kind = MaterialDesignThemes.Wpf.PackIconKind.Bell; if (count > 0) { targetWindow.BadgeControl.Badge = count; } } )); } } }