public static void UpdateLinkedIn(Domain.Socioboard.Models.LinkedInAccount linacc, oAuthLinkedIn _oauth) { apiHitsCount = 0; if (linacc.LastUpdate.AddHours(1) <= DateTime.UtcNow) { DatabaseRepository dbr = new DatabaseRepository(); Domain.Socioboard.Models.Groupprofiles _grpProfile = dbr.Single <Domain.Socioboard.Models.Groupprofiles>(t => t.profileId.Contains(linacc.LinkedinUserId)); if (linacc.IsActive) { try { dynamic profile = getLinkedInProfile(_oauth); try { linacc.Connections = Convert.ToInt32(profile.connections.ToString()); } catch (Exception) { linacc.Connections = linacc.Connections; } try { linacc.EmailId = profile.email.ToString(); } catch (Exception ex) { linacc.EmailId = linacc.EmailId; } try { linacc.ProfileImageUrl = profile.picture_url.ToString(); _grpProfile.profilePic = profile.picture_url.ToString(); } catch (Exception ex) { linacc.ProfileImageUrl = linacc.ProfileImageUrl; _grpProfile.profilePic = linacc.ProfileImageUrl; } try { linacc.ProfileUrl = profile.profile_url.ToString(); } catch (Exception ex) { linacc.ProfileUrl = linacc.ProfileUrl; } linacc.LastUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.LinkedInAccount>(linacc); dbr.Update <Domain.Socioboard.Models.Groupprofiles>(_grpProfile); } catch (Exception) { } } } }
public static int updateTwitterFeeds(Domain.Socioboard.Models.TwitterAccount twtaccount, oAuthTwitter oAuth) { apiHitsCount = 0; Model.DatabaseRepository dbr = new DatabaseRepository(); Domain.Socioboard.Models.Groupprofiles _grpProfile = dbr.Single <Domain.Socioboard.Models.Groupprofiles>(t => t.profileId.Contains(twtaccount.twitterUserId)); if (twtaccount.lastUpdate.AddMinutes(15) <= DateTime.UtcNow) { if (twtaccount.isActive) { string twitterUserId = string.Empty; Users userinfo = new Users(); JArray profile = userinfo.Get_Users_LookUp_ByScreenName(oAuth, oAuth.TwitterScreenName); TwitterUser twtuser; if (profile != null) { var item = profile[0]; try { twtaccount.followingCount = Convert.ToInt64(item["friends_count"].ToString()); } catch (Exception ex) { twtaccount.followingCount = twtaccount.followingCount; } try { twtaccount.followersCount = Convert.ToInt64(item["followers_count"].ToString()); } catch (Exception ex) { twtaccount.followersCount = twtaccount.followersCount; } try { twtaccount.profileImageUrl = item["profile_image_url_https"].ToString().TrimStart('"').TrimEnd('"'); _grpProfile.profilePic = item["profile_image_url_https"].ToString().TrimStart('"').TrimEnd('"'); } catch (Exception ex) { } try { twtaccount.location = item["location"].ToString().TrimStart('"').TrimEnd('"'); } catch (Exception ex) { } try { twtaccount.description = item["description"].ToString().TrimStart('"').TrimEnd('"'); } catch (Exception ex) { } try { twtaccount.profileUrl = string.Empty; } catch (Exception ex) { } try { twtaccount.twitterScreenName = item["screen_name"].ToString().TrimStart('"').TrimEnd('"'); } catch (Exception ex) { } try { twtaccount.profileBackgroundImageUrl = item["profile_banner_url"].ToString().TrimStart('"').TrimEnd('"'); } catch (Exception ex) { twtaccount.profileBackgroundImageUrl = item["profile_background_image_url_https"].ToString().TrimStart('"').TrimEnd('"'); } dbr.Update <Domain.Socioboard.Models.TwitterAccount>(twtaccount); dbr.Update <Domain.Socioboard.Models.Groupprofiles>(_grpProfile); while (apiHitsCount < MaxapiHitsCount) { try { Savetwitterrecentdetails(profile); SaveTwitterMessages(twtaccount.twitterUserId, oAuth); SaveUserRetweets(twtaccount.twitterUserId, oAuth); SaveUserTweets(twtaccount.twitterUserId, twtaccount.twitterScreenName, oAuth); SaveTwitterFeeds(twtaccount.twitterUserId, twtaccount.twitterScreenName, oAuth); SaveUserFollowers(oAuth, twtaccount.twitterScreenName, twtaccount.twitterUserId); SaveTwitterDirectMessageSent(oAuth, twtaccount.twitterUserId); SaveTwittwrDirectMessageRecieved(oAuth, twtaccount.twitterUserId); } catch (Exception exs) { } } twtaccount.lastUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.TwitterAccount>(twtaccount); } } } return(0); }
public static int UpdateLinkedInComanyPageFeed(Domain.Socioboard.Models.LinkedinCompanyPage linacc, oAuthLinkedIn _oauth) { DatabaseRepository dbr = new DatabaseRepository(); Domain.Socioboard.Models.Groupprofiles _grpProfile = dbr.Single <Domain.Socioboard.Models.Groupprofiles>(t => t.profileId.Contains(linacc.LinkedinPageId)); apiHitsCount = 0; if (linacc.lastUpdate.AddHours(1) <= DateTime.UtcNow) { if (linacc.IsActive) { dynamic profile = GetCompanyPageData(_oauth, linacc.LinkedinPageId); try { string NuberOfFollower = profile.num_followers.ToString(); linacc.NumFollowers = Convert.ToInt16(NuberOfFollower); } catch { linacc.NumFollowers = linacc.NumFollowers; } try { linacc.CompanyType = profile.company_type.ToString(); } catch { linacc.CompanyType = linacc.CompanyType; } try { linacc.LogoUrl = profile.logo_url.ToString(); _grpProfile.profilePic = profile.logo_url.ToString(); } catch { linacc.LogoUrl = linacc.LogoUrl; _grpProfile.profilePic = linacc.LogoUrl; } try { linacc.SquareLogoUrl = profile.square_logo_url.ToString(); } catch { linacc.SquareLogoUrl = linacc.SquareLogoUrl; } try { linacc.BlogRssUrl = profile.blog_rss_url.ToString(); } catch { linacc.BlogRssUrl = linacc.BlogRssUrl; } try { linacc.UniversalName = profile.universal_name.ToString(); } catch { linacc.UniversalName = linacc.UniversalName; } dbr.Update <Domain.Socioboard.Models.LinkedinCompanyPage>(linacc); try { List <LinkedinPageUpdate.CompanyPagePosts> objcompanypagepost = objLinkedinPageUpdate.GetPagePosts(_oauth, linacc.LinkedinPageId); if (apiHitsCount < MaxapiHitsCount && objcompanypagepost != null) { apiHitsCount++; LinkedinCompanyPagePosts lipagepost = new LinkedinCompanyPagePosts(); if (objcompanypagepost != null) { foreach (var item in objcompanypagepost) { lipagepost.Id = ObjectId.GenerateNewId(); lipagepost.strId = ObjectId.GenerateNewId().ToString(); lipagepost.Posts = item.Posts; lipagepost.PostDate = Convert.ToDateTime(item.PostDate).ToString("yyyy/MM/dd HH:mm:ss"); lipagepost.EntryDate = DateTime.UtcNow.ToString("yyyy/MM/dd HH:mm:ss"); lipagepost.UserId = linacc.UserId; lipagepost.Type = item.Type; lipagepost.PostId = item.PostId; lipagepost.UpdateKey = item.UpdateKey; lipagepost.PageId = linacc.LinkedinPageId; lipagepost.PostImageUrl = item.PostImageUrl; lipagepost.Likes = item.Likes; lipagepost.Comments = item.Comments; MongoRepository _CompanyPagePostsRepository = new MongoRepository("LinkedinCompanyPagePosts"); var ret = _CompanyPagePostsRepository.Find <Domain.Socioboard.Models.Mongo.LinkedinCompanyPagePosts>(t => t.PostId == lipagepost.PostId); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; if (count < 1) { _CompanyPagePostsRepository.Add(lipagepost); } } } else { apiHitsCount = MaxapiHitsCount; } } } catch (Exception) { } linacc.lastUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.LinkedinCompanyPage>(linacc); } } else { apiHitsCount = 0; } return(0); }
public static int updateInstagramFeeds(Domain.Socioboard.Models.Instagramaccounts insAcc) { apiHitsCount = 0; DatabaseRepository dbr = new DatabaseRepository(); Domain.Socioboard.Models.Groupprofiles _grpProfile = dbr.Single <Domain.Socioboard.Models.Groupprofiles>(t => t.profileId.Contains(insAcc.InstagramId)); if (insAcc.lastUpdate.AddHours(1) <= DateTime.UtcNow) { if (insAcc.IsActive) { // Domain.Socioboard.Models.Instagramaccounts Instagramaccounts = new Domain.Socioboard.Models.Instagramaccounts(); Domain.Socioboard.Models.Instagramaccounts objInstagramAccount; UserController objusercontroller = new UserController(); ConfigurationIns configi = new ConfigurationIns("https://api.instagram.com/oauth/authorize/", "d89b5cfa3796458ebbb2520d70eeb498", "e4663d0a287243f88ac619b5692119c8", "https://www.socioboard.com/InstagramManager/Instagram", "https://api.instagram.com/oauth/access_token", "https://api.instagram.com/v1/", ""); oAuthInstagram _api = new oAuthInstagram(); _api = oAuthInstagram.GetInstance(configi); InstagramResponse <User> objuser = objusercontroller.GetUserDetails(insAcc.InstagramId, insAcc.AccessToken); // objInstagramAccount = new Domain.Socioboard.Models.Instagramaccounts(); if (objuser != null) { try { insAcc.ProfileUrl = objuser.data.profile_picture; _grpProfile.profilePic = objuser.data.profile_picture; } catch (Exception ex) { insAcc.ProfileUrl = insAcc.ProfileUrl; _grpProfile.profilePic = insAcc.ProfileUrl; } try { insAcc.TotalImages = objuser.data.counts.media; } catch (Exception ex) { insAcc.TotalImages = insAcc.TotalImages; } try { insAcc.FollowedBy = objuser.data.counts.followed_by; } catch (Exception ex) { insAcc.FollowedBy = insAcc.FollowedBy; } try { insAcc.Followers = objuser.data.counts.follows; } catch (Exception ex) { insAcc.Followers = insAcc.Followers; } try { insAcc.bio = objuser.data.bio; } catch (Exception ex) { insAcc.bio = insAcc.bio; } dbr.Update <Domain.Socioboard.Models.Groupprofiles>(_grpProfile); dbr.Update <Domain.Socioboard.Models.Instagramaccounts>(insAcc); } while (apiHitsCount < MaxapiHitsCount) { try { GetInstagramSelfFeeds(insAcc.InstagramId, insAcc.AccessToken); } catch { } try { GetInstagramUserDetails(insAcc.InstagramId, insAcc.AccessToken, insAcc); } catch { } try { GetInstagramPostLikes(insAcc.InstagramId, insAcc.AccessToken); } catch { } try { GetInstagramPostComments(insAcc.InstagramId, insAcc.AccessToken); } catch { } try { GetInstagramFollowing(insAcc.InstagramId, insAcc.AccessToken, 1); } catch { } try { GetInstagramFollower(insAcc.InstagramId, insAcc.AccessToken, 1); } catch { } } insAcc.lastUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.Instagramaccounts>(insAcc); } } else { apiHitsCount = 0; } return(0); }
public IActionResult AddProfileToGroup(string profileId, long groupId, long userId, Domain.Socioboard.Enum.SocialProfileType profileType) { DatabaseRepository dbr = new DatabaseRepository(_logger, _appEnv); List <Domain.Socioboard.Models.Groupprofiles> lstGroupProfiles = GroupProfilesRepository.getGroupProfiles(groupId, _redisCache, dbr); if (lstGroupProfiles.Where(t => t.profileId.Equals(profileId)).Count() > 0) { return(BadRequest("profile already added")); } else { Domain.Socioboard.Models.Groups grp = dbr.Find <Domain.Socioboard.Models.Groups>(t => t.id == groupId).FirstOrDefault(); if (grp == null) { return(BadRequest("Invalid groupId")); } else { Domain.Socioboard.Models.Groupprofiles grpProfile = new Domain.Socioboard.Models.Groupprofiles(); if (profileType == Domain.Socioboard.Enum.SocialProfileType.Facebook || profileType == Domain.Socioboard.Enum.SocialProfileType.FacebookFanPage || profileType == Domain.Socioboard.Enum.SocialProfileType.FacebookPublicPage) { Domain.Socioboard.Models.Facebookaccounts fbAcc = Repositories.FacebookRepository.getFacebookAccount(profileId, _redisCache, dbr); if (fbAcc == null) { return(BadRequest("Invalid profileId")); } if (fbAcc.UserId != userId) { return(BadRequest("profile is added by other user")); } grpProfile.profileName = fbAcc.FbUserName; grpProfile.profileOwnerId = userId; grpProfile.profilePic = "http://graph.facebook.com/" + fbAcc.FbUserId + "/picture?type=small"; grpProfile.profileType = profileType; } else if (profileType == Domain.Socioboard.Enum.SocialProfileType.Twitter) { Domain.Socioboard.Models.TwitterAccount twtAcc = Repositories.TwitterRepository.getTwitterAccount(profileId, _redisCache, dbr); if (twtAcc == null) { return(BadRequest("Invalid profileId")); } if (twtAcc.userId != userId) { return(BadRequest("profile is added by other user")); } grpProfile.profileName = twtAcc.twitterScreenName; grpProfile.profileOwnerId = userId; grpProfile.profilePic = twtAcc.profileImageUrl; grpProfile.profileType = Domain.Socioboard.Enum.SocialProfileType.Twitter; } else if (profileType == Domain.Socioboard.Enum.SocialProfileType.GPlus) { Domain.Socioboard.Models.Googleplusaccounts gplusAccount = Repositories.GplusRepository.getGPlusAccount(profileId, _redisCache, dbr); if (gplusAccount == null) { return(BadRequest("Invalid ProfileId")); } if (gplusAccount.UserId != userId) { return(BadRequest("profile is added by other user")); } grpProfile.profileName = gplusAccount.GpUserName; grpProfile.profileOwnerId = userId; grpProfile.profilePic = gplusAccount.GpProfileImage; } else if (profileType == Domain.Socioboard.Enum.SocialProfileType.Instagram) { Domain.Socioboard.Models.Instagramaccounts _Instagramaccounts = Repositories.InstagramRepository.getInstagramAccount(profileId, _redisCache, dbr); if (_Instagramaccounts == null) { return(BadRequest("Invalid ProfileId")); } if (_Instagramaccounts.UserId != userId) { return(BadRequest("profile is added by other user")); } grpProfile.profileName = _Instagramaccounts.InsUserName; grpProfile.profileOwnerId = userId; grpProfile.profilePic = _Instagramaccounts.ProfileUrl; } else if (profileType == Domain.Socioboard.Enum.SocialProfileType.LinkedIn) { Domain.Socioboard.Models.LinkedInAccount _LinkedInAccount = Repositories.LinkedInAccountRepository.getLinkedInAccount(profileId, _redisCache, dbr); if (_LinkedInAccount == null) { return(BadRequest("Invalid ProfileId")); } if (_LinkedInAccount.UserId != userId) { return(BadRequest("profile is added by other user")); } grpProfile.profileName = _LinkedInAccount.LinkedinUserName; grpProfile.profileOwnerId = userId; grpProfile.profilePic = _LinkedInAccount.ProfileImageUrl; } else if (profileType == Domain.Socioboard.Enum.SocialProfileType.LinkedInComapanyPage) { Domain.Socioboard.Models.LinkedinCompanyPage _LinkedInAccount = Repositories.LinkedInAccountRepository.getLinkedinCompanyPage(profileId, _redisCache, dbr); if (_LinkedInAccount == null) { return(BadRequest("Invalid ProfileId")); } if (_LinkedInAccount.UserId != userId) { return(BadRequest("profile is added by other user")); } grpProfile.profileName = _LinkedInAccount.LinkedinPageName; grpProfile.profileOwnerId = userId; grpProfile.profilePic = _LinkedInAccount.LogoUrl; } grpProfile.entryDate = DateTime.UtcNow; grpProfile.groupId = grp.id; grpProfile.profileId = profileId; grpProfile.profileType = profileType; dbr.Add <Domain.Socioboard.Models.Groupprofiles>(grpProfile); //codes to clear cache _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheGroupProfiles + groupId); //end codes to clear cache return(Ok("Added Successfully")); } } }
public void UpdateGooglePlusAccount() { while (true) { try { Helper.DatabaseRepository dbr = new Helper.DatabaseRepository(); oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(Helper.AppSettings.GoogleConsumerKey, Helper.AppSettings.GoogleConsumerSecret, Helper.AppSettings.GoogleRedirectUri); oAuthToken objToken = new oAuthToken(Helper.AppSettings.GoogleConsumerKey, Helper.AppSettings.GoogleConsumerSecret, Helper.AppSettings.GoogleRedirectUri); JObject userinfo = new JObject(); List <Domain.Socioboard.Models.Googleplusaccounts> lstTwtAccounts = dbr.Find <Domain.Socioboard.Models.Googleplusaccounts>(t => t.IsActive).ToList(); foreach (var item in lstTwtAccounts) { Domain.Socioboard.Models.Groupprofiles _grpProfile = dbr.Single <Domain.Socioboard.Models.Groupprofiles>(t => t.profileId.Contains(item.GpUserId)); try { if (item.LastUpdate.AddHours(1) <= DateTime.UtcNow) { if (item.IsActive) { try { string objRefresh = ObjoAuthTokenGPlus.GetAccessToken(item.RefreshToken); JObject objaccesstoken = JObject.Parse(objRefresh); string access_token = objaccesstoken["access_token"].ToString(); string user = objToken.GetUserInfo("self", access_token); userinfo = JObject.Parse(JArray.Parse(user)[0].ToString()); string people = objToken.GetPeopleInfo("self", access_token, item.GpUserId); userinfo = JObject.Parse(JArray.Parse(people)[0].ToString()); try { item.GpUserName = userinfo["displayName"].ToString(); } catch { try { item.GpUserName = userinfo["name"].ToString(); } catch { } } try { item.GpProfileImage = Convert.ToString(userinfo["image"]["url"]); _grpProfile.profilePic = Convert.ToString(userinfo["image"]["url"]); } catch { try { item.GpProfileImage = Convert.ToString(userinfo["picture"]); _grpProfile.profilePic = Convert.ToString(userinfo["picture"]); } catch { } } try { item.about = Convert.ToString(userinfo["tagline"]); } catch { item.about = item.about; } try { item.college = Convert.ToString(userinfo["organizations"][0]["name"]); } catch { item.college = item.college; } try { item.coverPic = Convert.ToString(userinfo["cover"]["coverPhoto"]["url"]); } catch { item.coverPic = item.coverPic; } try { item.education = Convert.ToString(userinfo["organizations"][0]["type"]); } catch { item.education = item.education; } try { item.EmailId = Convert.ToString(userinfo["emails"][0]["value"]); } catch { item.EmailId = item.EmailId; } try { item.gender = Convert.ToString(userinfo["gender"]); } catch { item.gender = item.gender; } try { item.workPosition = Convert.ToString(userinfo["occupation"]); } catch { item.workPosition = item.workPosition; } #region Get_InYourCircles try { string _InyourCircles = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleList.Replace("[userId]", item.GpUserId).Replace("[collection]", "visible") + "?key=AIzaSyBmQ1X1UBnKi3V78EkLuh7UHk5odrGfp5M", item.AccessToken); JObject J_InyourCircles = JObject.Parse(_InyourCircles); item.InYourCircles = Convert.ToInt32(J_InyourCircles["totalItems"].ToString()); } catch (Exception ex) { item.InYourCircles = item.InYourCircles; } #endregion #region Get_HaveYouInCircles try { string _HaveYouInCircles = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleProfile + item.GpUserId + "?key=AIzaSyBmQ1X1UBnKi3V78EkLuh7UHk5odrGfp5M", item.AccessToken); JObject J_HaveYouInCircles = JObject.Parse(_HaveYouInCircles); item.HaveYouInCircles = Convert.ToInt32(J_HaveYouInCircles["circledByCount"].ToString()); } catch (Exception ex) { item.HaveYouInCircles = item.HaveYouInCircles; } #endregion dbr.Update <Domain.Socioboard.Models.Googleplusaccounts>(item); dbr.Update <Domain.Socioboard.Models.Groupprofiles>(_grpProfile); GooglePlusFeed.GetUserActivities(item.GpUserId, access_token); item.LastUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.Googleplusaccounts>(item); } catch (Exception) { Thread.Sleep(600000); } } } } catch (Exception ex) { Thread.Sleep(600000); } } Thread.Sleep(600000); } catch (Exception ex) { Console.WriteLine("issue in web api calling" + ex.StackTrace); Thread.Sleep(600000); } } }