Esempio n. 1
0
        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));
 }
Esempio n. 3
0
 public StubAccount()
 {
     Provider = "TestProvider";
     AccountId = "*****@*****.**";
     DisplayName = "Test User";
     Handles = new ContactHandle[] {new ContactEmailAddress("*****@*****.**", "Main")};
     CurrentSession = new StubSession();
 }
Esempio n. 4
0
 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;
 }