private async void SocketClientOnMessageReceived(object source, EventArgs e) { var args = (ChatEventArgs)e; //TODO cache user await App.Current.Dispatcher.InvokeAsync(async() => { if (SessionInformations.User.ID != args.UserID) { SoundService.PlayNotification(); } Message m = new Message(args.Date, await GetUser(args.Username, args.UserID), args.Message); Channels.First(c => c.ID == args.ChannelId).Messages.Add(m); NotifyPropertyChanged(nameof(NewMessages)); }); }