Example #1
0
        public void MultiThreadTest()
        {
            var ai = new TwitterApiInfo
            {
                ConsumerKey = "hYd5c8gYxhy3T2Nvj8wLA",
                ConsumerSecret = "KZGPvAN6kgioWlf0zrGYOzKevLatexuuuJlIhJQg"
            };

            var provider = new TwitterDataProvider(ai);

            var messages = provider.GetUserTweets(40648902, null, 10);
            //List<Message> messages = provider.GetUserHomeTimeLine(10);

            Action dlgFirstThread = StartFirstThread;
            Action dlgSecondThread = StartSecondThread;

            var arFirstThread = dlgFirstThread.BeginInvoke(null, null);
            var arSecondThread = dlgSecondThread.BeginInvoke(null, null);

            var waitHandles = new WaitHandle[] { arFirstThread.AsyncWaitHandle, arSecondThread.AsyncWaitHandle };
            //WaitHandle[] waitHandles = new WaitHandle[] { arFirstThread.AsyncWaitHandle };

            WaitHandle.WaitAll(waitHandles);

            Console.WriteLine("Operation complete. Press any key to close window...");
            Console.ReadLine();
        }
Example #2
0
        private void StartFirstThread()
        {
            var apiInfo = new TwitterApiInfo
            {
                AccessToken = "313315355-DT9HzoZKyLC4WbfKblVh5KAMyE0IGvtx5XFDtUx5",
                AccessTokenSecret = "7BhEPtC9RaQK0VIHmrugaimXXoOYjxxVhZGpcxw1w",
                ConsumerKey = "hYd5c8gYxhy3T2Nvj8wLA",
                ConsumerSecret = "KZGPvAN6kgioWlf0zrGYOzKevLatexuuuJlIhJQg"
            };

            var provider = new TwitterDataProvider(apiInfo);
            try
            {
                var result = provider.GetUrlOfUserImage("kamorin_roman", TwitterDataProvider.ImageSize.Small);
                var messages = provider.GetUserHomeTimeLine(10);
            }
            catch (Exception) { }

            Console.WriteLine("First thread complete");
        }
        public string UploadUserAvatarFromSocialNetwork(int contactId, SocialNetworks socialNetwork, string userIdentity, bool uploadOnly)
        {
            if (socialNetwork != SocialNetworks.Twitter && socialNetwork != SocialNetworks.Facebook && socialNetwork != SocialNetworks.LinkedIn)
                throw new ArgumentException();

            if (socialNetwork == SocialNetworks.Twitter)
            {
                TwitterDataProvider provider = new TwitterDataProvider(TwitterApiHelper.GetTwitterApiInfoForCurrentUser());
                string imageUrl = provider.GetUrlOfUserImage(userIdentity, TwitterDataProvider.ImageSize.Original);
                return UploadAvatar(contactId, imageUrl, uploadOnly);
            }
            if (socialNetwork == SocialNetworks.Facebook)
            {
                FacebookDataProvider provider = new FacebookDataProvider(FacebookApiHelper.GetFacebookApiInfoForCurrentUser());
                string imageUrl = provider.GetUrlOfUserImage(userIdentity, FacebookDataProvider.ImageSize.Original);
                return UploadAvatar(contactId, imageUrl, uploadOnly);
            }

            if (socialNetwork == SocialNetworks.LinkedIn)
            {
                LinkedInDataProvider provider = LinkedInApiHelper.GetLinkedInDataProviderForCurrentUser();
                string imageUrl = provider.GetUrlOfUserImage(userIdentity);
                return UploadAvatar(contactId, imageUrl, uploadOnly);
            }
            return null;
        }
        public List<TwitterUserInfo> FindTwitterProfiles(string searchText)
        {
            try
            {
                TwitterApiInfo apiInfo = TwitterApiHelper.GetTwitterApiInfoForCurrentUser();
                if (apiInfo == null)
                    throw new SocialMediaAccountNotFound(SocialMediaResource.SocialMediaAccountNotFoundTwitter);

                TwitterDataProvider provider = new TwitterDataProvider(apiInfo);
                List<TwitterUserInfo> users = provider.FindUsers(searchText);
                /*List<TwitterUserInfo> users = new List<TwitterUserInfo>();
                users.Add(new TwitterUserInfo { Description = "I'm a cool user", SmallImageUrl = "http://localhost/TeamLab/products/crm/data/0/photos/00/00/10/contact_10_50_50.jpg", UserName = "******", ScreenName = "user", UserID = 1 });
                users.Add(new TwitterUserInfo { Description = "I'm a cool user", SmallImageUrl = "http://localhost/TeamLab/products/crm/data/0/photos/00/00/10/contact_10_50_50.jpg", UserName = "******", ScreenName = "user", UserID = 1 });
                users.Add(new TwitterUserInfo { Description = "I'm a cool user", SmallImageUrl = "http://localhost/TeamLab/products/crm/data/0/photos/00/00/10/contact_10_50_50.jpg", UserName = "******", ScreenName = "user", UserID = 1 });*/
                return users;
            }
            catch (Exception ex) {
                throw new SocialMediaUI().ProcessError(ex, "ASC.Api.CRM.CRMApi.FindTwitterProfiles");
            }
        }
        public List<Message> GetUserTweets(int contactid, int count)
        {
            var MessageCount = 10;
            var twitterAccounts = Global.DaoFactory.GetContactInfoDao().GetList(contactid, ContactInfoType.Twitter, null, null);

            if (twitterAccounts.Count == 0)
                throw new ResourceNotFoundException(
                    Newtonsoft.Json.JsonConvert.SerializeObject(
                                        new
                                        {
                                            message = "",
                                            description = SocialMediaResource.SocialMediaAccountNotFoundTwitter
                                        }
                    ));

            var apiInfo = TwitterApiHelper.GetTwitterApiInfoForCurrentUser();
            TwitterDataProvider twitterProvider = new TwitterDataProvider(apiInfo);

            List<Message> messages = new List<Message>();

            foreach (var twitterAccount in twitterAccounts)
            {
                try
                {
                    messages.AddRange(twitterProvider.GetUserTweets(twitterAccount.ID, twitterAccount.Data, MessageCount));
                }
                catch (ResourceNotFoundException ex)
                {
                    throw new ResourceNotFoundException(
                        Newtonsoft.Json.JsonConvert.SerializeObject(
                                            new
                                            {
                                                message = ex.Message,
                                                description = String.Format("{0}: {1}", SocialMediaResource.ErrorUnknownTwitterAccount, twitterAccount.Data)
                                            }
                        ));
                }
                catch (Exception ex)
                {
                    throw new Exception(
                        Newtonsoft.Json.JsonConvert.SerializeObject(
                                            new
                                            {
                                                message = ex.Message,
                                                description = String.Format("{0}: {1}", SocialMediaResource.ErrorUnknownTwitterAccount, twitterAccount.Data)
                                            }
                        ));
                }
            }


            return messages.OrderByDescending(m => m.PostedOn).Take(MessageCount).ToList();

        }
        public string UploadUserAvatarFromSocialNetwork(int contactID, SocialNetworks socialNetwork, string userIdentity, bool uploadOnly)
        {
            try
            {
                //Process authorization
                if (!ProcessAuthorization(HttpContext.Current))
                {
                    AccessDenied(HttpContext.Current);
                    return null;
                }
                if (socialNetwork == SocialNetworks.Twitter)
                {
                    TwitterDataProvider provider = new TwitterDataProvider(TwitterApiHelper.GetTwitterApiInfoForCurrentUser());
                    string imageUrl = provider.GetUrlOfUserImage(userIdentity, TwitterDataProvider.ImageSize.Original);
                    return UploadAvatar(contactID, imageUrl, uploadOnly);
                }
                if (socialNetwork == SocialNetworks.Facebook)
                {
                    FacebookDataProvider provider = new FacebookDataProvider(FacebookApiHelper.GetFacebookApiInfoForCurrentUser());
                    string imageUrl = provider.GetUrlOfUserImage(userIdentity, FacebookDataProvider.ImageSize.Original);
                    return UploadAvatar(contactID, imageUrl, uploadOnly);
                }

                if (socialNetwork == SocialNetworks.LinkedIn)
                {
                    LinkedInDataProvider provider = LinkedInApiHelper.GetLinkedInDataProviderForCurrentUser();
                    string imageUrl = provider.GetUrlOfUserImage(userIdentity);
                    return UploadAvatar(contactID, imageUrl, uploadOnly);
                }
                return null;
            }
            catch (Exception ex)
            {
                throw ProcessError(ex, "UploadUserAvatarFromSocialNetwork");
            }
        }
        private List<SocialMediaImageDescription> GetTwitterImageDescriptionList(Contact contact, Tenant tenant)
        {
            CoreContext.TenantManager.SetCurrentTenant(tenant);

            var images = new List<SocialMediaImageDescription>();

            var twitterAccounts = Global.DaoFactory.GetContactInfoDao().GetListData(contact.ID, ContactInfoType.Twitter);

            if (twitterAccounts.Count == 0)
                return images;

            var provider = new TwitterDataProvider(TwitterApiHelper.GetTwitterApiInfoForCurrentUser());

            images.AddRange(from twitterAccount in twitterAccounts
                            let imageUrl = provider.GetUrlOfUserImage(twitterAccount, TwitterDataProvider.ImageSize.Small)
                            where imageUrl != null
                            select new SocialMediaImageDescription
                                       {
                                           Identity = twitterAccount,
                                           ImageUrl = imageUrl,
                                           SocialNetwork = SocialNetworks.Twitter
                                       });

            return images;
        }
        public string ShowTwitterUserRelationWindow(string userID)
        {
            try
            {
                //Process authorization
                if (!ProcessAuthorization(HttpContext.Current))
                {
                    AccessDenied(HttpContext.Current);
                    return null;
                }
                TwitterDataProvider provider = new TwitterDataProvider(TwitterApiHelper.GetTwitterApiInfoForCurrentUser());
                TwitterUserInfo user = provider.LoadUserInfo(Convert.ToDecimal(userID));
                return GetTwitterUserInfoPage(user);

            }
            catch (Exception ex)
            {
                throw ProcessError(ex, "ShowTwitterUserRelationWindow");
            }
        }
        public string FindTwitterProfiles(string searchText)
        {
            try
            {
                //Process authorization
                if (!ProcessAuthorization(HttpContext.Current))
                {
                    AccessDenied(HttpContext.Current);
                    return null;
                }

                TwitterDataProvider provider = new TwitterDataProvider(TwitterApiHelper.GetTwitterApiInfoForCurrentUser());
                List<TwitterUserInfo> users = provider.FindUsers(searchText);
                /*List<TwitterUserInfo> users = new List<TwitterUserInfo>();
                users.Add(new TwitterUserInfo { Description = "I'm a cool user", SmallImageUrl = "http://localhost/TeamLab/products/crm/data/0/photos/00/00/10/contact_10_50_50.jpg", UserName = "******", ScreenName = "user", UserID = 1 });
                users.Add(new TwitterUserInfo { Description = "I'm a cool user", SmallImageUrl = "http://localhost/TeamLab/products/crm/data/0/photos/00/00/10/contact_10_50_50.jpg", UserName = "******", ScreenName = "user", UserID = 1 });
                users.Add(new TwitterUserInfo { Description = "I'm a cool user", SmallImageUrl = "http://localhost/TeamLab/products/crm/data/0/photos/00/00/10/contact_10_50_50.jpg", UserName = "******", ScreenName = "user", UserID = 1 });*/
                string result = JsonConvert.SerializeObject(users);
                return result;
            }
            catch (Exception ex)
            {
                throw ProcessError(ex, "FindTwitterProfiles");
            }
        }
        public string FindUsers(string searchText, string socialNetwork)
        {
            try
            {
                //Process authorization
                if (!ProcessAuthorization(HttpContext.Current))
                {
                    AccessDenied(HttpContext.Current);
                    return null;
                }
                if (socialNetwork.ToLower() == "twitter")
                {
                    TwitterDataProvider provider = new TwitterDataProvider(TwitterApiHelper.GetTwitterApiInfoForCurrentUser());
                    List<TwitterUserInfo> users = provider.FindUsers(searchText);
                    return GetTwitterUserListPage(users);
                }
                if (socialNetwork.ToLower() == "facebook")
                {
                    FacebookApiInfo apiInfo = FacebookApiHelper.GetFacebookApiInfoForCurrentUser();

                    if (apiInfo == null)
                        throw new SocialMediaAccountNotFound(SocialMediaResource.SocialMediaAccountNotFoundFacebook);

                    FacebookDataProvider facebookProvider = new FacebookDataProvider(apiInfo);

                    List<FacebookUserInfo> users = facebookProvider.FindUsers(searchText);
                    return GetFacebookUserListPage(users);
                }
                return null;

            }
            catch (Exception ex)
            {
                throw ProcessError(ex, "FindUsers");
            }
        }
        private List<Message> GetUserActivity()
        {
            if (SelectedSocialNetworks == null)
                return null;

            List<Message> messages = new List<Message>();
            if (SelectedSocialNetworks.Contains(SocialNetworks.Twitter))
            {
                TwitterDataProvider twitterProvider = new TwitterDataProvider(TwitterInformation.ApiInfo);
                foreach (UserAccountInfo accountInfo in TwitterInformation.UserAccounts)
                {
                    try
                    {
                        messages.AddRange(twitterProvider.GetUserTweets(accountInfo.UserID, accountInfo.ScreenName, MessageCount));
                    }
                    catch (ResourceNotFoundException)
                    {
                        _ctrlErrorDescription.InnerText += String.Format("{0}: {1}", SocialMediaResource.ErrorUnknownTwitterAccount, accountInfo.ScreenName);
                        _ctrlErrorDescriptionContainer.Style.Add(System.Web.UI.HtmlTextWriterStyle.Display, "block");
                        this.InvalidTwitterAccountExist = true;
                    }
                }
            }

            return messages.OrderByDescending(m => m.PostedOn).Take(MessageCount).ToList();
        }
Example #12
0
        static private void StartSecondThread()
        {
            var errorsCount = 0;
            var apiInfo = new TwitterApiInfo
            {
                AccessToken = "333874355-YBK9kp8Qc0mtRuYp9org5XegCX3DZKwycJdZZd8l",
                AccessTokenSecret = "q0qjlrXlehPag6mNqamvMhoLtb6z2bPUPDRh27HKN7Y",
                ConsumerKey = "hYd5c8gYxhy3T2Nvj8wLA",
                ConsumerSecret = "KZGPvAN6kgioWlf0zrGYOzKevLatexuuuJlIhJQg"
            };

            var provider = new TwitterDataProvider(apiInfo);
            for (var i = 0; i < MaxIterations; i++)
            {
                Thread.Sleep(100);
                try
                {
                    provider.GetUserHomeTimeLine(1);
                    Console.WriteLine("Second thread: Success. Iteration {0} ", i + 1);
                }
                catch (Exception)
                {
                    Console.WriteLine("Second thread: Exception. Iteration {0} ", i + 1);
                    errorsCount++;

                    if (errorsCount == MaxErrorsCount)
                    {
                        Console.WriteLine("Second thread: Exception Max count reached. Breaking. Iteration {0} ", i + 1);
                        break;
                    }
                }
            }

            Console.WriteLine("Second thread complete");
        }
 private List<Message> GetUserWallTwitter()
 {
     List<Message> messageList = new List<Message>();
     try
     {
         TwitterDataProvider twitterProvider = new TwitterDataProvider(TwitterInformation.ApiInfo);
         messageList.AddRange(twitterProvider.GetUserHomeTimeLine(MessageCount));
     }
     catch (Exception ex)
     {
         ThrownExceptions.Add(ex);
     }
     return messageList;
 }
Example #14
0
        private List<SocialMediaImageDescription> GetTwitterImageDescriptionList(List<String> twitterAccounts, Tenant tenant)
        {
            var images = new List<SocialMediaImageDescription>();

            if (twitterAccounts.Count == 0)
                return images;

            try
            {
                CoreContext.TenantManager.SetCurrentTenant(tenant);

                var provider = new TwitterDataProvider(TwitterApiHelper.GetTwitterApiInfoForCurrentUser());

                twitterAccounts = twitterAccounts.Distinct().ToList();
                images.AddRange(from twitterAccount in twitterAccounts
                                let imageUrl = provider.GetUrlOfUserImage(twitterAccount, TwitterDataProvider.ImageSize.Small)
                                where imageUrl != null
                                select new SocialMediaImageDescription
                                {
                                    Identity = twitterAccount,
                                    ImageUrl = imageUrl,
                                    SocialNetwork = SocialNetworks.Twitter
                                });
            }
            catch (Exception ex)
            {
                _logger.Error(ex);
            }

            return images;
        }