private void RemoveContact(AddRemoveContactTemplate rContT) { ContactUI rContact = null; foreach (ContactUI i in mainPageViewModel.ContactsTab.Contacts) { if (i.ContactID == rContT.TargetContactId) { rContact = i; break; } } if (rContact != null) { Application.Current.Dispatcher.Invoke(new Action(() => { if (mainPageViewModel.ContactsTab.SelectedContact != null && mainPageViewModel.ContactsTab.SelectedContact.Equals(rContact)) { mainPageViewModel.CurrentChatMessages = new ObservableCollection <MessageUI>(); } mainPageViewModel.ContactsTab.Contacts.Remove(rContact); mainPageViewModel.ContactsTab.SelectedContact = null; } )); } }
private void AddContact(AddRemoveContactTemplate arContT) { ContactUI newContact = null; foreach (ContactUI i in mainPageViewModel.ContactsTab.FilteredNoUserContacts) { if (i.ContactID == arContT.TargetContactId) { newContact = i; break; } } if (newContact != null) { Application.Current.Dispatcher.Invoke(new Action(() => { mainPageViewModel.ContactsTab.FilteredNoUserContacts.Remove(newContact); mainPageViewModel.ContactsTab.Contacts.Add(newContact); newContact.Visibility = Visibility.Collapsed; newContact.ChatId = arContT.ChatId; mainPageViewModel.ContactsTab.SelectedNoUserContact = null; } )); } }
private void AddContactTarget(AddRemoveContactTargetTemplate aconttT) { Application.Current.Dispatcher.Invoke(new Action(() => { MemoryStream memoryStream = new MemoryStream(aconttT.NewContact.AvatarImage); BitmapImage avatar = Converters.BitmapToImageSource(new Bitmap(memoryStream)); ContactUI newContact = new ContactUI(aconttT.NewContact.AppName, "", avatar, aconttT.NewContact.Status, aconttT.NewContact.UserId, aconttT.NewContact.ChatId, new ObservableCollection <MessageUI>(), aconttT.NewContact.IsBlocked); mainPageViewModel.ContactsTab.Contacts.Add(newContact); if (mainPageViewModel.ContactsTab.SearchTextField.Length != 0 || mainPageViewModel.ContactsTab.IsSearchOutsideContacts) { newContact.Visibility = Visibility.Collapsed; } else { newContact.Visibility = Visibility.Visible; } } )); }
private void RemoveContactTarget(AddRemoveContactTargetTemplate rconttT) { ContactUI rContact = null; foreach (ContactUI i in mainPageViewModel.ContactsTab.Contacts) { if (i.ContactID == rconttT.NewContact.UserId) { rContact = i; break; } } if (rContact != null) { Application.Current.Dispatcher.Invoke(new Action(() => { if (mainPageViewModel.ContactsTab.SelectedContact != null && mainPageViewModel.ContactsTab.SelectedContact.Equals(rContact)) { mainPageViewModel.CurrentChatMessages.Clear(); mainPageViewModel.ContactsTab.SelectedContact = null; } mainPageViewModel.ContactsTab.Contacts.Remove(rContact); } )); } }
private void AddConv(CreateConvTemplate crconvT) { Application.Current.Dispatcher.Invoke(new Action(() => { MemoryStream memoryStream = new MemoryStream(crconvT.Image); BitmapImage avatar = Converters.BitmapToImageSource(new Bitmap(memoryStream)); ContactUI newConv = new ContactUI(crconvT.Title, crconvT.ConvMembers.Count.ToString() + ' ' + (string)Application.Current.FindResource("l_Members"), avatar, Status.Offline, -1, crconvT.ChatId, new ObservableCollection <MessageUI>(), false, ContactType.Conversation, new ObservableCollection <Contact>(crconvT.ConvMembers)); mainPageViewModel.ContactsTab.Contacts.Add(newConv); if (mainPageViewModel.ContactsTab.SearchTextField.Length != 0 || mainPageViewModel.ContactsTab.IsSearchOutsideContacts) { newConv.Visibility = Visibility.Collapsed; } else { newConv.Visibility = Visibility.Visible; } } )); }
private void RemoveConv(RemoveConvTemplate rconvT) { ContactUI rConv = null; foreach (ContactUI i in mainPageViewModel.ContactsTab.Contacts) { if (i.ChatId == rconvT.ChatId) { rConv = i; break; } } if (rConv != null) { Application.Current.Dispatcher.Invoke(new Action(() => { if (mainPageViewModel.ContactsTab.SelectedContact != null && mainPageViewModel.ContactsTab.SelectedContact.Equals(rConv)) { mainPageViewModel.CurrentChatMessages.Clear(); mainPageViewModel.ContactsTab.SelectedContact = null; } mainPageViewModel.ContactsTab.Contacts.Remove(rConv); } )); } }
private void RemoveConvTarget(RemoveConvTemplate rconvtT) { ContactUI rConv = null; foreach (ContactUI i in mainPageViewModel.ContactsTab.Contacts) { if (i.ChatId == rconvtT.ChatId) { rConv = i; break; } } if (rConv != null) { Application.Current.Dispatcher.Invoke(new Action(() => { rConv.ContactLastMessage = (rConv.ConvMembers.Count - 1).ToString() + ' ' + (string)Application.Current.FindResource("l_Members"); } )); } }
private void RefreshMessageState(RefreshMessageStateTemplate refrmsT) { ContactUI contact = null; foreach (ContactUI i in mainPageViewModel.ContactsTab.Contacts) { if (i.ChatId == refrmsT.ChatId) { contact = i; break; } } if (contact != null) { foreach (MessageUI m in contact.ContactMessages) { if (m.MessageId == refrmsT.messageId) { Application.Current.Dispatcher.Invoke(new Action(() => { m.MessageState = refrmsT.MessageState; if (m.MessageState == MessageState.Readed) { if (m.SenderId != mainPageViewModel.MainViewModel.UserInfo.Info.Id) { contact.MessageCounter--; } } })); break; } } } }
private void SendMessageReceive(SendMessageTemplate sMessT) { if (sMessT.Message.SenderID == mainPageViewModel.MainViewModel.UserInfo.Info.Id) { foreach (ContactUI contactUI in mainPageViewModel.ContactsTab.Contacts) { if (contactUI.ChatId == sMessT.ReceiverChatID) { foreach (MessageUI m in contactUI.ContactMessages) { if (m.MessageDateTime == sMessT.Message.Time && m.IsOwnerMessage) { Application.Current.Dispatcher.Invoke(new Action(() => { m.MessageState = MessageState.Sended; m.ChatId = sMessT.ReceiverChatID; m.MessageId = sMessT.Message.MessageID; if (m.MessageType == MessageType.File) { m.FileSize = sMessT.Message.FileSize; mainPageViewModel.MainViewModel.NotifyUserByRowState(RowStateResourcesName.l_succsUploaded); } })); } } break; } } } else { ContactUI chat = null; foreach (ContactUI c in mainPageViewModel.ContactsTab.Contacts) { if (c.ChatId == sMessT.ReceiverChatID) { chat = c; break; } } if (chat != null) { switch (chat.ContactType) { case ContactType.Chat: Application.Current.Dispatcher.Invoke(new Action(() => { MessageUI messageUI = new MessageUI(mainPageViewModel, false, chat.ContactAvatar, chat.ContactStatus, sMessT.Message.MessageType, sMessT.Message.MessageState, sMessT.Message.Time, sMessT.Message.MessageBody, sMessT.Message.SenderName, sMessT.ReceiverChatID, sMessT.Message.MessageID, chat.ContactID, sMessT.Message.FileName, sMessT.Message.FileSize); chat.ContactMessages.Add(messageUI); chat.MessageCounter++; })); break; case ContactType.Conversation: foreach (Contact i in chat.ConvMembers) { if (i.UserId == sMessT.Message.SenderID) { Application.Current.Dispatcher.Invoke(new Action(() => { MemoryStream memoryStream = new MemoryStream(i.AvatarImage); BitmapImage senderAvatar = Converters.BitmapToImageSource(new Bitmap(memoryStream)); MessageUI messageUI = new MessageUI(mainPageViewModel, false, senderAvatar, i.Status, sMessT.Message.MessageType, sMessT.Message.MessageState, sMessT.Message.Time, sMessT.Message.MessageBody, sMessT.Message.SenderName, sMessT.ReceiverChatID, sMessT.Message.MessageID, i.UserId, sMessT.Message.FileName, sMessT.Message.FileSize); chat.ContactMessages.Add(messageUI); chat.MessageCounter++; })); } } break; default: break; } } } }