public void GetContactsList(string token, GroupList<Contact, string> contactsList) { Contacts contacts = new Contacts(); Contact tmpContact; contacts.SearchCompleted += (s, e) => { foreach (Microsoft.Phone.UserData.Contact contact in e.Results) { using (var contactPhotoStream = contact.GetPicture()) { tmpContact = new Contact { DisplayName = contact.DisplayName, ContactPic = contactPhotoStream == null ? PictureDecoder.DecodeJpeg(Application.GetResourceStream(new Uri(@"/VkMessenger;component/Image/No_photo.png", UriKind.Relative)).Stream) : PictureDecoder.DecodeJpeg(contactPhotoStream) }; tmpContact.FillPhoneNumbers(contact.PhoneNumbers.Select(cpn => Regex.Replace(cpn.PhoneNumber.StartsWith("8") ? "+7" + cpn.PhoneNumber.Substring(1) : cpn.PhoneNumber, @"[^+\d]", string.Empty)).ToList()); contactsList.AddItem(tmpContact); } } LinkContacts(token, contactsList); }; contacts.SearchAsync(string.Empty, FilterKind.None, null); }
/// <summary> /// Реализация для команды ShowContact /// </summary> private void ExecuteShowContact(Contact contact) { OpenContact(contact); }
/// <summary> /// CanExecute для команды ShowContact /// </summary> private bool CanExecuteShowContact(Contact contact) { return contact != null; }
private void OpenContact(Contact contact) { Debug.Assert(contact != null); NavigationService.NavigateTo(contact.LinkedUser != null ? VkContactDetails.GetUri(_tokenInfo.Token, contact.DisplayName) : NonVkContactDetails.GetUri(_tokenInfo.Token, contact.DisplayName)); }