public async void LoadConversations() { var cons = await await this.CurrentClient.ConnectAsync().ContinueWith<Task<IEnumerable<AVIMConversation>>>(t => { return this.CurrentClient.GetQuery().FindAsync(); }); if (cons != null) { foreach (var c in cons) { var cListVM = new ConversationViewModel(c); this.ConversationsListVM.Add(cListVM); NotifyPropertyChanged("ConversationListVM"); } } }
public async void LoadConversations() { var cons = await await this.CurrentClient.ConnectAsync().ContinueWith <Task <IEnumerable <AVIMConversation> > >(t => { return(this.CurrentClient.GetQuery().FindAsync()); }); if (cons != null) { foreach (var c in cons) { var cListVM = new ConversationViewModel(c); this.ConversationsListVM.Add(cListVM); NotifyPropertyChanged("ConversationListVM"); } } }
private async void lls_contacts_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (lls_contacts.SelectedItem == null) return; var contact = e.AddedItems[0] as DemoContact;//选择的联系人 var conversations = await App.ViewModel.CurrentClient.GetQuery().WhereContains("m", contact.UserId).FindAsync();//查询之前是否有过对话 AVIMConversation conversation = null; if (conversations.Count() > 0) { conversation = conversations.FirstOrDefault();//如果有就不用创建新的。 } else { conversation = await App.ViewModel.CurrentClient.CreateConversationAsync(contact.UserId, "xxxx", new Dictionary<string, object>() { { "type", "private" } });//创建新的对话,并且加上自定义的属性标识它为一个 私有的对话(私聊) } var existVMs = App.ViewModel.ConversationsListVM.Where(t => { if (t.AVConversation == null) return false; return t.AVConversation.ConversationId == conversation.ConversationId; } ); ConversationViewModel existVM = null; if (existVMs.Count() == 0) { existVM = new ConversationViewModel() { AVConversation = conversation }; App.ViewModel.ConversationsListVM.Add(existVM); } else { existVM = existVMs.FirstOrDefault(); } App.ViewModel.SelectedConversationVM = existVM; lls_contacts.SelectedItem = null; NavigationService.Navigate(new Uri("/Conversation.xaml", UriKind.RelativeOrAbsolute)); }