private void UpdateMessage(BaseMessage message, Func <BaseMessage, bool> UiUpdateStrategy) { try { var mes = "New message from @"; var sender = UserServiceClient.GetUserById(message.SenderId); if (message is GroupMessage gMes) { if (SelectedContact is ChatGroupUiInfo) { if (gMes.ChatGroupId != (SelectedContact as ChatGroupUiInfo).ChatGroupId) { gMes.SenderName = sender.FirstName; ChatGroup chatGroup = UserServiceClient.GetChatGroupById(gMes.ChatGroupId); mes += chatGroup.Name; mes += " group \n"; mes += "\"" + GlobalBase.Base64Decode(message.Text) + "\""; GlobalBase.ShowNotify("New message", mes); } else { UiUpdateStrategy(message); } } } else if (message is UserMessage uMes) { if (SelectedContact is UserUiInfo) { if (uMes.SenderId != (SelectedContact as UserUiInfo).UserId) { mes += sender.FirstName + sender.LastName + "\n"; mes += "\"" + GlobalBase.Base64Decode(message.Text) + "\""; GlobalBase.ShowNotify("New message", mes); } else { UiUpdateStrategy(message); } } } Debug.WriteLine("Receave Message from - ", sender.Login); } catch (Exception) { } }