private static void Service_OnReceivedMessage(object sender, Core.EventHandlers.MessageEventArgs e) { if (e.Message.Sender == userName) { return; } if (e.Message.TypeInfo.Name == nameof(SimpleTextMessage)) { var simpleText = e.Message as SimpleTextMessage; var message = $"{simpleText.Sender}: {simpleText.Text}"; Console.WriteLine(message); } else if (e.Message.TypeInfo.Name == nameof(UserConnectedMessage)) { var userConnected = e.Message as UserConnectedMessage; string message = string.Empty; if (userConnected.IsEntering) { message = $"{userConnected.Sender} has connected"; } else { message = $"{userConnected.Sender} has left"; } Console.WriteLine(message); } else if (e.Message.TypeInfo.Name == nameof(PhotoUrlMessage)) { var photoMessage = e.Message as PhotoUrlMessage; string message = $"{photoMessage.Sender} sent {photoMessage.Url}"; Console.WriteLine(message); } }
private void _chateService_OnReceivedMessage(object sender, Core.EventHandlers.MessageEventArgs e) { Device.BeginInvokeOnMainThread(async() => { if (Messages.All(x => x.Id != e.Message.Id)) { if (e.Message.TypeInfo.Name == nameof(UserConnectedMessage)) { var user = await _chateService.GetUsersGroup(GroupName); Users = new ObservableCollection <User>(user); } if (e.Message.TypeInfo.Name != nameof(UserConnectedMessage)) { var user = Users.FirstOrDefault(x => x.UserId == e.Message.Sender); e.Message.Color = user.Color; e.Message.Avatar = user.Avatar; } Messages.Add(e.Message); } }); }