public IAccount TranslateToAccount(string response, ISession session) { var xDoc = XDocument.Parse(response); if (xDoc.Root == null) return null; var root = xDoc.Root; var idElement = root.Element("x", "id"); if (idElement == null) return null; var xAuthor = xDoc.Root.Element("x", "author"); if (xAuthor == null) return null; var xName = xAuthor.Element("x", "name"); if (xName == null) return null; var xEmail = xAuthor.Element("x", "email"); if (xEmail == null) return null; var id = idElement.Value; var name = xName.Value; var email = xEmail.Value; var contactHandles = new ContactHandle[] { new ContactEmailAddress(email, "main") }; return _accountFactory.Create(id, Constants.ProviderName, name, session, contactHandles); }
public IObservable<IContactProfile> LookupContactByHandles(User user, ContactHandle[] contactHandles) { var keys = contactHandles.SelectMany(ch => ch.NormalizedHandle()) .ToArray(); return GetContactLookupFor(user) .Log(_logger, "GetContactDetails") .SelectMany(cl => cl.GetByContactKeys(keys)); }
public StubAccount() { Provider = "TestProvider"; AccountId = "*****@*****.**"; DisplayName = "Test User"; Handles = new ContactHandle[] {new ContactEmailAddress("*****@*****.**", "Main")}; CurrentSession = new StubSession(); }
public IObservable<IContactProfile> LookupContactByHandles(User user, ContactHandle[] contactHandles) { var keys = contactHandles.SelectMany(ch => ch.NormalizedHandle()) .ToArray(); var matchedContacts = _userContactMap[user.Id].GetByContactKeys(keys); //HACK: This should be able to return multiple values. -LC return matchedContacts.ToObservable(); }
private IAccount TranslateToAccount(string response, ISession session) { /* <?xml version="1.0" encoding="UTF-8"?> <person> <id>AYG5qtgCVu</id> <first-name>Lee</first-name> <last-name>Campbell</last-name> <headline>Consultant with Adaptive</headline> <site-standard-profile-request> <url>https://www.linkedin.com/profile/view?id=20154357&authType=name&authToken=dcRu&trk=api*a3227641*s3301901*</url> </site-standard-profile-request> </person> */ var xDoc = XDocument.Parse(response); if (xDoc.Root == null) return null; var root = xDoc.Root; var idElement = root.Element(XName.Get("id")); if (idElement == null) return null; var xFirstName = root.Element(XName.Get("first-name")); if (xFirstName == null) return null; var xLastName = root.Element(XName.Get("last-name")); if (xLastName == null) return null; var id = idElement.Value; var name = string.Format("{0} {1}", xFirstName.Value, xLastName.Value); var contactHandles = new ContactHandle[0]; return _accountFactory.Create(id, ProviderConfiguration.Instance.Name, name, session, contactHandles); }
public async Task Then_contacts_are_available_by_key(ContactHandle key, string expectedTitle, ContactHandle expected) { await WaitForContactsToBeLoaded(); var actual = await _contactFeedRepository.LookupContactByHandles(User, new[] { key }) .Take(1) .Timeout(TimeSpan.FromSeconds(10)) .ToTask(); Trace.WriteLine(actual); Assert.IsNotNull(actual); Assert.AreEqual(expectedTitle, actual.Title); Assert.AreEqual(actual.Handles.Count(), 1); Assert.AreEqual(expected.Handle, actual.Handles.Single().Handle); Assert.AreEqual(expected.HandleType, actual.Handles.Single().HandleType); Assert.AreEqual(expected.Qualifier, actual.Handles.Single().Qualifier); }
public ContactHandleRecord(ContactHandle source) { HandleType = source.HandleType; Handle = source.Handle; Qualifier = source.Qualifier; }