public MessagesPage() { InitializeComponent(); _viewModel = DataContext as MessagesPageViewModel; _navigationHelper = new NavigationHelper(this); _navigationHelper.LoadState += NavigationHelper_LoadState; _navigationHelper.SaveState += NavigationHelper_SaveState; }
public MessagesPage() { InitializeComponent(); BindingContext = new MessagesPageViewModel(); MessagingCenter.Subscribe <MessagesPageViewModel>(new MessagesPageViewModel(), "ButtonClicked", (sender) => { DisplayAlert("Heyooo", "The button was clicked", "OK", "Nay"); }); }
public MessagesPage() { InitializeComponent(); Title = "Chat"; BindingContext = new MessagesPageViewModel(); MessagingCenter.Subscribe <ScrollListViewMessage>(this, "ScrollToBottom", message => { var item = ((ObservableCollection <MessageViewModel>)(this.MessagesListView.ItemsSource)).Last(); MessagesListView.ScrollTo(item, ScrollToPosition.End, false); }); }
private async void LstChannels_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (lstChannels.SelectedItem != null) { MessagesPageViewModel vm = lstChannels.SelectedItem as MessagesPageViewModel; if (vm.PlayerAdvert != null) { //PlayerAdvert advert = vm.PlayerAdvert; //advert. await Navigation.PushAsync(new ChatPage(vm)); } else { await Navigation.PushAsync(new ChatPage(vm)); } lstChannels.SelectedItem = null; } }
public async Task <MessagesPageViewModel> GetMessages([FromForm] GetMessagesModel model) { MessagesPageViewModel responseModel; if (model.MessagesIds.IsNullOrEmpty()) { responseModel = await _loadMessagesService.GetMessagesPageAsync(model.ConversationId, model.ConversationType, model.PageNumber.GetValueOrDefault(), messagesLimit); } else { var messages = await _loadMessagesService.GetMessagesByIdAsync(model.MessagesIds, model.ConversationType, model.ConversationId, null) .ConfigureAwait(false); responseModel = new MessagesPageViewModel { Messages = MessageConverter.GetMessagesVm(messages, null) }; } return(responseModel); }
private async void TapGestureRecognizer_Tapped(object sender, EventArgs e) { if (mainPlayerAdvert.UserId != currentUser.Id) { MessagesPageViewModel model = new MessagesPageViewModel() { currentUser = currentUser, PlayerAdvert = mainPlayerAdvert, OpponentAdvert = null, channelUser1 = mainPlayerAdvert.User, currentChannel = null, channelUser2 = null, }; await Navigation.PushAsync(new ChatPage(model)); } else { await DisplayAlert("Upps!", "Kendinizle konuşamazsınız.Felsefi olarak bakıyorsanız başka tabii :)", "OK"); } }
/// <summary> /// Populates the page with content passed during navigation. Any saved state is also /// provided when recreating a page from a prior session. /// </summary> private async void NavigationHelper_LoadState(object sender, LoadStateEventArgs e) { // restore state from previous session if (e.PageState != null && e.PageState.ContainsKey("MessagesPageViewModel")) { _viewModel = e.PageState["MessagesPageViewModel"] as MessagesPageViewModel; return; } var item = e.NavigationParameter as SlackItem; if (item == null) { return; } _viewModel.ChannelId = item.UniqueId; _viewModel.ChannelName = item.Description; await _viewModel.RefreshMessages(); }
//User otherUser = new User(); public ChatPage(MessagesPageViewModel model) { InitializeComponent(); NavigationPage navPage = App.Current.MainPage as NavigationPage; navPage.BarBackgroundColor = Color.FromHex("#2dbefc"); navPage.BarTextColor = Color.White; activityControl.MakeVisible(ActivityLayout, activity); //model.currentChannel = messageService.GetChannel(model.currentChannel.Id); layoutMain.IsVisible = false; GetChannelMessages(model); //if (model.ChannelId != 0 && model.currentChannel != null) //{ // GetChannelMessages(model); //} //else //{ // messagesPageViewModel = model; //} currentUser = App.Current.Properties["loggedUser"] as User; _username = currentUser.Email; //messagesPageViewModel = model; this.Title = model.otherUserName; //SIGNALR client.Connect(_username); client.ConnectionError += Client_ConnectionError; client.OnMessageReceived += Client_OnMessageReceived; this.BindingContext = ChatPageViewModels; }
private async void GetChannelMessages(MessagesPageViewModel vm) { if (vm.ChannelId != 0 && vm.currentChannel != null) { ChatChannel channel = await messageService.GetChannel(vm.ChannelId); vm.currentChannel = channel; messagesPageViewModel = vm; } else { messagesPageViewModel = vm; } if (messagesPageViewModel.ChannelId != 0 && messagesPageViewModel.currentChannel != null) { if (messagesPageViewModel.PlayerAdvert != null) { opponentAdvert = null; playerAdvert = messagesPageViewModel.PlayerAdvert; } else if (messagesPageViewModel.OpponentAdvert != null) { opponentAdvert = messagesPageViewModel.OpponentAdvert; playerAdvert = null; } } else // CHANNEL BOŞ GELMİŞSE { if (messagesPageViewModel.PlayerAdvert != null) { //receiverEmail.Text = model.channelUser1.Email; playerAdvert = messagesPageViewModel.PlayerAdvert; opponentAdvert = null; } else { //receiverEmail.Text = model.channelUser1.Email; playerAdvert = null; opponentAdvert = messagesPageViewModel.OpponentAdvert; } } if (messagesPageViewModel.PlayerAdvert != null && messagesPageViewModel.OpponentAdvert == null) { lblAdvertFirstLine.Text = messagesPageViewModel.PlayerAdvert.City + " / " + messagesPageViewModel.PlayerAdvert.Town; lblAdvertSecondLine.Text = messagesPageViewModel.DateAndTime; } else if (messagesPageViewModel.PlayerAdvert == null && messagesPageViewModel.OpponentAdvert != null) { lblAdvertFirstLine.Text = messagesPageViewModel.OpponentAdvert.City + " şehrinde rakip ilanı"; lblAdvertSecondLine.Text = ""; } // HEM DB HEM sıgnalr ile ilgili CheckProperAdvert(); if (messagesPageViewModel.currentChannel != null) { if (messagesPageViewModel.currentChannel.Id != 0) { mainChannel = messagesPageViewModel.currentChannel; if (mainChannel.ChatChannelUsers.Count > 0) { if (mainChannel.ChatChannelUsers[1].ChatMessages.Count > 0 || mainChannel.ChatChannelUsers[0].ChatMessages.Count > 0) { List <ChatPageViewModel> tempModel = new List <ChatPageViewModel>(); foreach (ChatMessage msg in mainChannel.ChatChannelUsers[0].ChatMessages) { //allMessages.Add(msg); if (mainChannel.ChatChannelUsers[0].UserId == currentUser.Id) // EĞER 0 INDEXLI CHATCHANNELUSER BEN İSEM; { tempModel.Add(new ChatPageViewModel() { Message = msg.Text, isMyMessage = true, SenderUser = messagesPageViewModel.currentUser, isUserChangingPoint = false, SendingTime = msg.CreatedOn }); } else { tempModel.Add(new ChatPageViewModel() { Message = msg.Text, isMyMessage = false, // BEN OWNER DEĞİLİM SenderUser = messagesPageViewModel.OtherUser, isUserChangingPoint = false, SendingTime = msg.CreatedOn }); } //modelList.Add(new SignalrUser() { message = msg.Text, username = "******" }); } foreach (ChatMessage msg in mainChannel.ChatChannelUsers[1].ChatMessages) { //allMessages.Add(msg); //modelList.Add(new SignalrUser() { message = msg.Text, username = "******" }); if (mainChannel.ChatChannelUsers[1].UserId == currentUser.Id) // EĞER 1 INDEXLI CHATCHANNELUSER BEN İSEM; { tempModel.Add(new ChatPageViewModel() { Message = msg.Text, isMyMessage = true, SenderUser = messagesPageViewModel.currentUser, isUserChangingPoint = false, SendingTime = msg.CreatedOn }); } else { tempModel.Add(new ChatPageViewModel() { Message = msg.Text, isMyMessage = false, SenderUser = messagesPageViewModel.OtherUser, isUserChangingPoint = false, SendingTime = msg.CreatedOn }); } } ChatPageViewModels = tempModel.OrderBy(x => x.SendingTime).ToList(); LastMessageOwnerId = ChatPageViewModels[0].SenderUser.Id; ChatPageViewModels[0].isUserChangingPoint = true; foreach (ChatPageViewModel chatPageViewModel in ChatPageViewModels) { if (chatPageViewModel.SenderUser.Id != LastMessageOwnerId) { chatPageViewModel.isUserChangingPoint = true; LastMessageOwnerId = chatPageViewModel.SenderUser.Id; } } colMessages.ItemsSource = ChatPageViewModels; colMessages.VerticalScrollBarVisibility = ScrollBarVisibility.Never; colMessages.ScrollTo(ChatPageViewModels.Last(), -1, ScrollToPosition.End, true); } } } } else { mainChannel = null; } activityControl.MakeUnVisible(ActivityLayout, activity); layoutMain.IsVisible = true; return; }