Пример #1
0
        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;
                }
                                                                 ));
            }
        }
Пример #2
0
        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;
                }
                                                                 ));
            }
        }
Пример #3
0
        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;
                }
            }
                                                             ));
        }
Пример #4
0
        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);
                }
                                                                 ));
            }
        }
Пример #5
0
        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;
                }
            }
                                                             ));
        }
Пример #6
0
        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);
                }
                                                                 ));
            }
        }
Пример #7
0
        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");
                }
                                                                 ));
            }
        }
Пример #8
0
        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;
                    }
                }
            }
        }
Пример #9
0
        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;
                    }
                }
            }
        }