public static string AddPageShareathon(long userId, string FacebookUrl, string FacebookPageId, string Facebookaccountid, int Timeintervalminutes, Helper.Cache _redisCache, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr) { Domain.Socioboard.Models.Facebookaccounts objfacebook = Repositories.FacebookRepository.getFacebookAccount(Facebookaccountid, _redisCache, dbr); string pageid = Helper.FacebookHelper.GetFbPageDetails(FacebookUrl, objfacebook.AccessToken); string[] profileids = null; profileids = FacebookPageId.Split(','); string facebookpagename = ""; Domain.Socioboard.Models.Mongo.PageShareathon _Shareathon = new Domain.Socioboard.Models.Mongo.PageShareathon(); _Shareathon.Id = ObjectId.GenerateNewId(); _Shareathon.strId = ObjectId.GenerateNewId().ToString(); _Shareathon.Facebookaccountid = objfacebook.FbUserId; _Shareathon.Facebookusername = objfacebook.FbUserName; _Shareathon.Facebookpageid = FacebookPageId; _Shareathon.FacebookPageUrl = FacebookUrl; _Shareathon.FacebookPageUrlId = pageid.TrimEnd(','); foreach (var item in profileids) { Domain.Socioboard.Models.Facebookaccounts objfacebookpage = FacebookRepository.getFacebookAccount(item, _redisCache, dbr); if (objfacebookpage != null) { facebookpagename = objfacebookpage.FbUserName + ',' + facebookpagename; } } _Shareathon.Facebookpagename = facebookpagename.TrimEnd(','); _Shareathon.FacebookStatus = 1; _Shareathon.Timeintervalminutes = Timeintervalminutes; _Shareathon.Userid = userId; _Shareathon.Lastsharetimestamp = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow); var shareathonRepository = new MongoRepository("Shareathon", _appSettings); var ret = shareathonRepository.Find <Domain.Socioboard.Models.Mongo.PageShareathon>(t => t.Facebookpageid == FacebookPageId && t.Facebookaccountid == Facebookaccountid && t.FacebookPageUrl == FacebookUrl && t.Userid == userId); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; if (count > 0) { return("Oops! Same page shareathon settings has been added already."); } shareathonRepository.Add(_Shareathon); return("Page shareathon has been scheduled Successfully."); }
public IActionResult GetPluginProfile(long groupId) { List <Domain.Socioboard.Helpers.PluginProfile> lstPluginProfile = new List <Domain.Socioboard.Helpers.PluginProfile>(); DatabaseRepository dbr = new DatabaseRepository(_logger, _appEnv); List <Domain.Socioboard.Models.Groupprofiles> lstGroupprofiles = dbr.Find <Domain.Socioboard.Models.Groupprofiles>(t => t.groupId.Equals(groupId) && (t.profileType == Domain.Socioboard.Enum.SocialProfileType.Facebook || t.profileType == Domain.Socioboard.Enum.SocialProfileType.FacebookFanPage || t.profileType == Domain.Socioboard.Enum.SocialProfileType.Twitter)).ToList(); lstGroupprofiles = lstGroupprofiles.GroupBy(t => t.profileId).Select(g => g.First()).ToList(); foreach (var item in lstGroupprofiles) { try { if (item.profileType == Domain.Socioboard.Enum.SocialProfileType.Facebook || item.profileType == Domain.Socioboard.Enum.SocialProfileType.FacebookFanPage) { Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = FacebookRepository.getFacebookAccount(item.profileId, _redisCache, dbr); if (_Facebookaccounts != null) { if (!string.IsNullOrEmpty(_Facebookaccounts.AccessToken)) { if (_Facebookaccounts.IsActive) { Domain.Socioboard.Helpers.PluginProfile _sb = new Domain.Socioboard.Helpers.PluginProfile(); _sb.type = "facebook"; _sb.facebookprofile = _Facebookaccounts; _sb.twitterprofile = new Domain.Socioboard.Models.TwitterAccount(); lstPluginProfile.Add(_sb); } } } } if (item.profileType == Domain.Socioboard.Enum.SocialProfileType.Twitter) { Domain.Socioboard.Models.TwitterAccount _TwitterAccount = TwitterRepository.getTwitterAccount(item.profileId, _redisCache, dbr); if (_TwitterAccount != null) { if (_TwitterAccount.isActive) { Domain.Socioboard.Helpers.PluginProfile _sb = new Domain.Socioboard.Helpers.PluginProfile(); _sb.type = "twitter"; _sb.twitterprofile = _TwitterAccount; _sb.facebookprofile = new Domain.Socioboard.Models.Facebookaccounts(); lstPluginProfile.Add(_sb); } } } } catch (Exception ex) { return(Ok(lstPluginProfile)); } } return(Ok(lstPluginProfile)); }
private static void AddedProfileDetails(Cache redisCache, DatabaseRepository dbr, List <profilesdetail> groupProfiles, Groupprofiles profile) { switch (profile.profileType) { case SocialProfileType.Facebook: { var fbAcc = FacebookRepository.getFacebookAccount(profile.profileId, redisCache, dbr); var profileDetails = new profilesdetail { Fbaccount = fbAcc }; groupProfiles.Add(profileDetails); break; } case SocialProfileType.FacebookFanPage: { var fbPageAcc = FacebookRepository.getFacebookAccount(profile.profileId, redisCache, dbr); var profileDetails = new profilesdetail { Fbaccount = fbPageAcc }; groupProfiles.Add(profileDetails); break; } case SocialProfileType.Twitter: { var twtAcc = TwitterRepository.getTwitterAccount(profile.profileId, redisCache, dbr); var profileDetails = new profilesdetail { Twtaccount = twtAcc }; groupProfiles.Add(profileDetails); break; } case SocialProfileType.Instagram: { var insAcc = InstagramRepository.getInstagramAccount(profile.profileId, redisCache, dbr); var profileDetails = new profilesdetail { Instaaccount = insAcc }; groupProfiles.Add(profileDetails); break; } case SocialProfileType.GPlus: { var gPlusAcc = GplusRepository.getGPlusAccount(profile.profileId, redisCache, dbr); var profileDetails = new profilesdetail { Gplusaccount = gPlusAcc }; groupProfiles.Add(profileDetails); break; } case SocialProfileType.LinkedIn: { var linkedInAcc = LinkedInAccountRepository.getLinkedInAccount(profile.profileId, redisCache, dbr); var profileDetails = new profilesdetail { LinkdInaccount = linkedInAcc }; groupProfiles.Add(profileDetails); break; } case SocialProfileType.LinkedInComapanyPage: { var linkedCompanyAcc = LinkedInAccountRepository.getLinkedinCompanyPage(profile.profileId, redisCache, dbr); var profileDetails = new profilesdetail { LinkdINcompanyaccount = linkedCompanyAcc }; groupProfiles.Add(profileDetails); break; } case SocialProfileType.YouTube: { var youtubeChannel = GplusRepository.getYTChannel(profile.profileId, redisCache, dbr); var profileDetails = new profilesdetail { Ytubeaccount = youtubeChannel }; groupProfiles.Add(profileDetails); break; } case SocialProfileType.GoogleAnalytics: { var gAAcc = GplusRepository.getGAAccount(profile.profileId, redisCache, dbr); var profileDetails = new profilesdetail { GAaccount = gAAcc }; groupProfiles.Add(profileDetails); break; } case SocialProfileType.Pinterest: { var pInterestAccountDetail = PinterestRepository.getPinterestAccountDetail(profile.profileId, redisCache, dbr); var profileDetails = new profilesdetail { Pintrestaccount = pInterestAccountDetail }; groupProfiles.Add(profileDetails); break; } case SocialProfileType.GplusPage: break; case SocialProfileType.Tumblr: break; case SocialProfileType.FacebookPublicPage: break; case SocialProfileType.DropBox: break; default: throw new ArgumentOutOfRangeException(); } }
public IActionResult SchedulePagePost(string profileId, int TimeInterVal, long UserId) { int addedPageCount = 0; int invalidaccessToken = 0; profileId = profileId.TrimEnd(','); try { try { foreach (var items in profileId.Split(',')) { string pageUrls = Request.Form["pageUrls"]; Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = new Facebookaccounts(); DatabaseRepository dbr = new DatabaseRepository(_logger, _appEnv); _Facebookaccounts = FacebookRepository.getFacebookAccount(items, _redisCache, dbr); List <Domain.Socioboard.Models.Mongo.PageDetails> pageid = Helper.FacebookHelper.GetFbPagePostDetails(pageUrls, _Facebookaccounts.AccessToken); if (pageid.Count == 0) { invalidaccessToken++; } foreach (Domain.Socioboard.Models.Mongo.PageDetails item in pageid) { addedPageCount++; if (_Facebookaccounts != null) { LinkShareathon _LinkShareathon = new LinkShareathon(); _LinkShareathon.Id = ObjectId.GenerateNewId(); _LinkShareathon.strId = ObjectId.GenerateNewId().ToString(); _LinkShareathon.Userid = UserId; _LinkShareathon.Facebookusername = _Facebookaccounts.FbUserName; _LinkShareathon.FacebookPageUrl = item.PageUrl; _LinkShareathon.TimeInterVal = TimeInterVal; _LinkShareathon.Facebookpageid = item.PageId; _LinkShareathon.IsActive = true; MongoRepository _ShareathonRepository = new MongoRepository("LinkShareathon", _appSettings); _ShareathonRepository.Add(_LinkShareathon); new Thread(delegate() { Helper.FacebookHelper.schedulePage_Post(_Facebookaccounts.AccessToken, item.PageId, TimeInterVal); }).Start(); } } } } catch (Exception ex) { } } catch (System.Exception ex) { } if (addedPageCount == profileId.Length) { return(Ok("successfully added")); } else if (invalidaccessToken > 0) { return(Ok(invalidaccessToken + "pages access token expired")); } return(Ok("successfully added")); }