public IHttpActionResult AddLinkedInAccount(LinkedInManager LinkedInManager) { string ret = ""; string UserId = LinkedInManager.UserId; oAuthLinkedIn _oauth = new oAuthLinkedIn(); LinkedInProfile objProfile = new LinkedInProfile(); Domain.Socioboard.Domain.GroupProfile grpProfile = new Domain.Socioboard.Domain.GroupProfile(); try { _oauth.ConsumerKey = ConfigurationManager.AppSettings["LinkedinApiKey"]; } catch (Exception ex) { Console.WriteLine(ex.Message); logger.Error(ex.Message); } try { _oauth.ConsumerSecret = ConfigurationManager.AppSettings["LinkedinSecretKey"]; } catch (Exception ex) { Console.WriteLine(ex.Message); logger.Error(ex.Message); } string access_token_Url = "https://www.linkedin.com/uas/oauth2/accessToken"; string access_token_postData = "grant_type=authorization_code&code=" + LinkedInManager.Code + "&redirect_uri=" + System.Web.HttpUtility.UrlEncode(ConfigurationManager.AppSettings["LinkedinCallBackURL"]) + "&client_id=" + ConfigurationManager.AppSettings["LinkedinApiKey"] + "&client_secret=" + ConfigurationManager.AppSettings["LinkedinSecretKey"]; LinkedInProfile.UserProfile objUserProfile = new LinkedInProfile.UserProfile(); string token = _oauth.APIWebRequestAccessToken("POST", access_token_Url, access_token_postData); var oathtoken = JObject.Parse(token); _oauth.Token = oathtoken["access_token"].ToString().TrimStart('"').TrimEnd('"'); #region Get linkedin Profile data from Api try { _oauth.ConsumerKey = ConfigurationManager.AppSettings["LinkedinApiKey"]; } catch (Exception ex) { Console.WriteLine(ex.Message); logger.Error(ex.Message); } try { _oauth.ConsumerSecret = ConfigurationManager.AppSettings["LinkedinSecretKey"]; } catch (Exception ex) { Console.WriteLine(ex.Message); logger.Error(ex.Message); } try { objUserProfile = objProfile.GetUserProfile(_oauth); } catch (Exception ex) { Console.WriteLine(ex.Message); logger.Error(ex.Message); } #endregion dynamic data = objUserProfile; try { #region LinkedInAccount objLinkedInAccount.UserId = Guid.Parse(UserId); objLinkedInAccount.LinkedinUserId = data.id.ToString(); try { objLinkedInAccount.EmailId = data.email.ToString(); } catch (Exception ex) { logger.Error(ex.StackTrace); } objLinkedInAccount.LinkedinUserName = data.first_name.ToString() + data.last_name.ToString(); objLinkedInAccount.OAuthToken = _oauth.Token; objLinkedInAccount.OAuthSecret = _oauth.TokenSecret; objLinkedInAccount.OAuthVerifier = _oauth.Verifier; try { objLinkedInAccount.ProfileImageUrl = data.picture_url.ToString(); } catch (Exception ex) { logger.Error(ex.StackTrace); } try { objLinkedInAccount.ProfileUrl = data.profile_url.ToString(); } catch (Exception ex) { logger.Error(ex.StackTrace); } #endregion #region SocialProfiles try { objLinkedInAccount.Connections = data.connections; objLinkedInAccount.IsActive = true; objSocialProfile.UserId = Guid.Parse(UserId); objSocialProfile.ProfileType = "linkedin"; objSocialProfile.ProfileId = data.id.ToString(); objSocialProfile.ProfileStatus = 1; objSocialProfile.ProfileDate = DateTime.Now; objSocialProfile.Id = Guid.NewGuid(); } catch (Exception ex) { logger.Error(ex.Message); } #endregion SocialProfiles #region Add TeamMemberProfile try { //Domain.Socioboard.Domain.Team objTeam = objTeamRepository.GetTeamByGroupId(Guid.Parse(LinkedInManager.GroupId)); //objTeamMemberProfile = new Domain.Socioboard.Domain.TeamMemberProfile(); //objTeamMemberProfile.Id = Guid.NewGuid(); //objTeamMemberProfile.TeamId = objTeam.Id; //objTeamMemberProfile.Status = 1; //objTeamMemberProfile.ProfileType = "linkedin"; //objTeamMemberProfile.StatusUpdateDate = DateTime.Now; //objTeamMemberProfile.ProfileId = objLinkedInAccount.LinkedinUserId; //objTeamMemberProfile.ProfileName = objLinkedInAccount.LinkedinUserName; //objTeamMemberProfile.ProfilePicUrl = objLinkedInAccount.ProfileImageUrl; grpProfile.Id = Guid.NewGuid(); grpProfile.GroupId = Guid.Parse(LinkedInManager.GroupId); grpProfile.GroupOwnerId = objLinkedInAccount.UserId; grpProfile.ProfileId = objLinkedInAccount.LinkedinUserId; grpProfile.ProfileType = "linkedin"; grpProfile.ProfileName = objLinkedInAccount.LinkedinUserName; grpProfile.EntryDate = DateTime.UtcNow; //grpProfileRepo.AddGroupProfile(grpProfile); } catch (Exception ex) { logger.Error(ex.Message); } #endregion } catch (Exception ex) { logger.Error(ex.StackTrace); } try { if (!objLinkedInAccountRepository.checkLinkedinUserExists(objLinkedInAccount.LinkedinUserId, Guid.Parse(UserId))) { objLinkedInAccountRepository.addLinkedinUser(objLinkedInAccount); ret = "LinkedIn Account Added Successfully"; } else { ret = "LinkedIn Account Already Exist"; } if (!objSocialProfilesRepository.checkUserProfileExist(objSocialProfile)) { objSocialProfilesRepository.addNewProfileForUser(objSocialProfile); grpProfileRepo.AddGroupProfile(grpProfile); } } catch (Exception ex) { logger.Error(ex.StackTrace); } return Ok(ret); }
public IHttpActionResult GetLinkedinCompanyPage(LinkedInManager LinkedInManager) { string UserId = LinkedInManager.UserId; oAuthLinkedIn _oauth = new oAuthLinkedIn(); LinkedInProfile objProfile = new LinkedInProfile(); List<Helper.AddlinkedinCompanyPage> lstAddLinkedinPage = new List<Helper.AddlinkedinCompanyPage>(); try { _oauth.ConsumerKey = ConfigurationManager.AppSettings["LinkedinApiKey"]; } catch (Exception ex) { Console.WriteLine(ex.Message); logger.Error(ex.Message); } try { _oauth.ConsumerSecret = ConfigurationManager.AppSettings["LinkedinSecretKey"]; } catch (Exception ex) { Console.WriteLine(ex.Message); logger.Error(ex.Message); } string access_token_Url = "https://www.linkedin.com/uas/oauth2/accessToken"; string access_token_postData = "grant_type=authorization_code&code=" + LinkedInManager.Code + "&redirect_uri=" + System.Web.HttpUtility.UrlEncode(ConfigurationManager.AppSettings["LinkedinCallBackURL"]) + "&client_id=" + ConfigurationManager.AppSettings["LinkedinApiKey"] + "&client_secret=" + ConfigurationManager.AppSettings["LinkedinSecretKey"]; LinkedInProfile.UserProfile objUserProfile = new LinkedInProfile.UserProfile(); string token = _oauth.APIWebRequestAccessToken("POST", access_token_Url, access_token_postData); var oathtoken = JObject.Parse(token); _oauth.Token = oathtoken["access_token"].ToString().TrimStart('"').TrimEnd('"'); string response = _oauth.APIWebRequest("GET", GlobusLinkedinLib.App.Core.Global.GetLinkedInCompanyPageUrl, null); try { var companypage = JObject.Parse(response); foreach (var item in companypage["values"]) { Helper.AddlinkedinCompanyPage objAddLinkedinPage = new Helper.AddlinkedinCompanyPage(); objAddLinkedinPage.PageId = item["id"].ToString(); objAddLinkedinPage.PageName = item["name"].ToString(); objAddLinkedinPage._Oauth = _oauth; lstAddLinkedinPage.Add(objAddLinkedinPage); } string data = new JavaScriptSerializer().Serialize(lstAddLinkedinPage); return Ok(data); } catch (Exception) { return Ok("No Company Page Found"); } }