public static List <Domain.Socioboard.Models.Mongo.totalfbPagePostDetails> getfbPagePostAllDetails(string[] profileId, int daysCount, Helper.Cache _redisCache, Helper.AppSettings _appSettings) { MongoRepository mongorepo = new MongoRepository("FacebookPagePost", _appSettings); //string[] profileId = lstfanpageacc.Select(t => t.FbUserId).ToArray(); List <Domain.Socioboard.Models.Mongo.totalfbPagePostDetails> inMemFacaebookPageDailyReports = _redisCache.Get <List <Domain.Socioboard.Models.Mongo.totalfbPagePostDetails> >(Domain.Socioboard.Consatants.SocioboardConsts.CacheInstagramDailyReport + profileId); if (inMemFacaebookPageDailyReports != null) { return(inMemFacaebookPageDailyReports); } else { List <Domain.Socioboard.Models.Mongo.totalfbPagePostDetails> reportdata = new List <totalfbPagePostDetails>(); DateTime dayStart = new DateTime(DateTime.UtcNow.AddDays(-90).Year, DateTime.UtcNow.AddDays(-90).Month, DateTime.UtcNow.AddDays(-90).Day, 0, 0, 0, DateTimeKind.Utc); DateTime dayEnd = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, 23, 59, 59, DateTimeKind.Utc); var ret = mongorepo.Find <Domain.Socioboard.Models.Mongo.FacebookPagePost>(t => profileId.Contains(t.PageId) && (t.CreatedTime <= Helper.DateExtension.ToUnixTimestamp(dayEnd) && t.CreatedTime >= Helper.DateExtension.ToUnixTimestamp(dayStart))); var task = Task.Run(async() => { return(await ret); }); if (task.Result != null) { IList <Domain.Socioboard.Models.Mongo.FacebookPagePost> lstfacebookpagepost = task.Result.ToList(); var facebookId = lstfacebookpagepost.GroupBy(x => x.PageId).Select(x => x.Last()).ToList(); var random = new Random(); foreach (Domain.Socioboard.Models.Mongo.FacebookPagePost lstcolordata in facebookId) { List <Domain.Socioboard.Models.Facebookaccounts> lstacc = new List <Domain.Socioboard.Models.Facebookaccounts>(); var randomColor = String.Format("#{0:X6}", random.Next(0x1000000)); Domain.Socioboard.Models.Mongo.totalfbPagePostDetails fbreportData = new totalfbPagePostDetails(); string comments = lstfacebookpagepost.ToList().Where(t => t.PageId == lstcolordata.PageId).Sum(t => Convert.ToInt64(t.Comments)).ToString(); string likes = lstfacebookpagepost.ToList().Where(t => t.PageId == lstcolordata.PageId).Sum(t => Convert.ToInt64(t.Likes)).ToString(); string posts = null; try { posts = lstfacebookpagepost.ToList().Where(t => t.PageId == lstcolordata.PageId).Count(t => Convert.ToBoolean(int.Parse(t.PostId))).ToString(); } catch (Exception ex) { } string talkings = lstfacebookpagepost.ToList().Where(t => t.PageId == lstcolordata.PageId).Sum(t => Convert.ToInt64(t.Talking)).ToString(); string shares = lstfacebookpagepost.ToList().Where(t => t.PageId == lstcolordata.PageId).Sum(t => Convert.ToInt64(t.Shares)).ToString(); // lstacc = lstfanpageacc.Where<Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == lstcolordata.pageId).ToList(); fbreportData.startDate = dayStart; fbreportData.endDate = dayEnd; fbreportData.profileId = lstcolordata.PageId; fbreportData.name = lstcolordata.PageName; fbreportData.commnets = comments; fbreportData.likes = likes; fbreportData.shares = shares; //fbreportData.post = posts; fbreportData.color = Convert.ToString(randomColor); reportdata.Add(fbreportData); } return(reportdata.OrderBy(t => t.startDate).ToList()); } return(new List <Domain.Socioboard.Models.Mongo.totalfbPagePostDetails>()); } }
public static string DeleteGplusProfile(Model.DatabaseRepository dbr, string profileId, long userId, Helper.Cache _redisCache, Helper.AppSettings _appSettings) { Domain.Socioboard.Models.Googleplusaccounts fbAcc = dbr.Find <Domain.Socioboard.Models.Googleplusaccounts>(t => t.GpUserId.Equals(profileId) && t.UserId == userId && t.IsActive).FirstOrDefault(); if (fbAcc != null) { fbAcc.IsActive = false; dbr.Update <Domain.Socioboard.Models.Googleplusaccounts>(fbAcc); _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheGplusAccount + profileId); return("Deleted"); } else { return("Account Not Exist"); } }
public static int AddGplusAccount(JObject profile, Model.DatabaseRepository dbr, Int64 userId, Int64 groupId, string accessToken, string refreshToken, Helper.Cache _redisCache, Helper.AppSettings settings, ILogger _logger) { int isSaved = 0; Domain.Socioboard.Models.Googleplusaccounts gplusAcc = GplusRepository.getGPlusAccount(Convert.ToString(profile["id"]), _redisCache, dbr); oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(settings.GoogleConsumerKey, settings.GoogleConsumerSecret, settings.GoogleRedirectUri); if (gplusAcc != null && gplusAcc.IsActive == false) { gplusAcc.IsActive = true; gplusAcc.UserId = userId; gplusAcc.AccessToken = accessToken; gplusAcc.RefreshToken = refreshToken; gplusAcc.EntryDate = DateTime.UtcNow; try { gplusAcc.GpUserName = profile["displayName"].ToString(); } catch { try { gplusAcc.GpUserName = profile["name"].ToString(); } catch { } } try { gplusAcc.GpProfileImage = Convert.ToString(profile["image"]["url"]); } catch { try { gplusAcc.GpProfileImage = Convert.ToString(profile["picture"]); } catch { } } gplusAcc.AccessToken = accessToken; try { gplusAcc.about = Convert.ToString(profile["tagline"]); } catch { gplusAcc.about = ""; } try { gplusAcc.college = Convert.ToString(profile["organizations"][0]["name"]); } catch { gplusAcc.college = ""; } try { gplusAcc.coverPic = Convert.ToString(profile["cover"]["coverPhoto"]["url"]); } catch { gplusAcc.coverPic = ""; } try { gplusAcc.education = Convert.ToString(profile["organizations"][0]["type"]); } catch { gplusAcc.education = ""; } try { gplusAcc.EmailId = Convert.ToString(profile["emails"][0]["value"]); } catch { gplusAcc.EmailId = ""; } try { gplusAcc.gender = Convert.ToString(profile["gender"]); } catch { gplusAcc.gender = ""; } try { gplusAcc.workPosition = Convert.ToString(profile["occupation"]); } catch { gplusAcc.workPosition = ""; } gplusAcc.LastUpdate = DateTime.UtcNow; #region Get_InYourCircles try { string _InyourCircles = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleList.Replace("[userId]", gplusAcc.GpUserId).Replace("[collection]", "visible") + "?key=" + settings.GoogleApiKey, accessToken); JObject J_InyourCircles = JObject.Parse(_InyourCircles); gplusAcc.InYourCircles = Convert.ToInt32(J_InyourCircles["totalItems"].ToString()); } catch (Exception ex) { gplusAcc.InYourCircles = 0; } #endregion #region Get_HaveYouInCircles try { string _HaveYouInCircles = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleProfile + gplusAcc.GpUserId + "?key=" + settings.GoogleApiKey, accessToken); JObject J_HaveYouInCircles = JObject.Parse(_HaveYouInCircles); gplusAcc.HaveYouInCircles = Convert.ToInt32(J_HaveYouInCircles["circledByCount"].ToString()); } catch (Exception ex) { gplusAcc.HaveYouInCircles = 0; } #endregion dbr.Update <Domain.Socioboard.Models.Googleplusaccounts>(gplusAcc); } else { gplusAcc = new Domain.Socioboard.Models.Googleplusaccounts(); gplusAcc.UserId = userId; gplusAcc.GpUserId = profile["id"].ToString(); try { gplusAcc.GpUserName = profile["displayName"].ToString(); } catch { try { gplusAcc.GpUserName = profile["name"].ToString(); } catch { } } gplusAcc.IsActive = true; gplusAcc.AccessToken = accessToken; gplusAcc.RefreshToken = refreshToken; gplusAcc.EntryDate = DateTime.UtcNow; try { gplusAcc.GpProfileImage = Convert.ToString(profile["image"]["url"]); } catch { try { gplusAcc.GpProfileImage = Convert.ToString(profile["picture"]); } catch { } } gplusAcc.AccessToken = accessToken; try { gplusAcc.about = Convert.ToString(profile["tagline"]); } catch { gplusAcc.about = ""; } try { gplusAcc.college = Convert.ToString(profile["organizations"][0]["name"]); } catch { gplusAcc.college = ""; } try { gplusAcc.coverPic = Convert.ToString(profile["cover"]["coverPhoto"]["url"]); } catch { gplusAcc.coverPic = ""; } try { gplusAcc.education = Convert.ToString(profile["organizations"][0]["type"]); } catch { gplusAcc.education = ""; } try { gplusAcc.EmailId = Convert.ToString(profile["emails"][0]["value"]); } catch { try { try { gplusAcc.EmailId = Convert.ToString(profile["email"]); } catch { } } catch { } gplusAcc.EmailId = ""; } try { gplusAcc.gender = Convert.ToString(profile["gender"]); } catch { gplusAcc.gender = ""; } try { gplusAcc.workPosition = Convert.ToString(profile["occupation"]); } catch { gplusAcc.workPosition = ""; } gplusAcc.LastUpdate = DateTime.UtcNow; #region Get_InYourCircles try { string _InyourCircles = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleList.Replace("[userId]", gplusAcc.GpUserId).Replace("[collection]", "visible") + "?key=" + settings.GoogleApiKey, accessToken); JObject J_InyourCircles = JObject.Parse(_InyourCircles); gplusAcc.InYourCircles = Convert.ToInt32(J_InyourCircles["totalItems"].ToString()); } catch (Exception ex) { gplusAcc.InYourCircles = 0; } #endregion #region Get_HaveYouInCircles try { string _HaveYouInCircles = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleProfile + gplusAcc.GpUserId + "?key=" + settings.GoogleApiKey, accessToken); JObject J_HaveYouInCircles = JObject.Parse(_HaveYouInCircles); gplusAcc.HaveYouInCircles = Convert.ToInt32(J_HaveYouInCircles["circledByCount"].ToString()); } catch (Exception ex) { gplusAcc.HaveYouInCircles = 0; } #endregion isSaved = dbr.Add <Domain.Socioboard.Models.Googleplusaccounts>(gplusAcc); } if (isSaved == 1) { List <Domain.Socioboard.Models.Googleplusaccounts> lstgplusAcc = dbr.Find <Domain.Socioboard.Models.Googleplusaccounts>(t => t.GpUserId.Equals(gplusAcc.GpUserId)).ToList(); if (lstgplusAcc != null && lstgplusAcc.Count() > 0) { isSaved = GroupProfilesRepository.AddGroupProfile(groupId, lstgplusAcc.First().GpUserId, lstgplusAcc.First().GpUserName, userId, lstgplusAcc.First().GpProfileImage, Domain.Socioboard.Enum.SocialProfileType.GPlus, dbr); //codes to delete cache _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheUserProfileCount + userId); _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheGroupProfiles + groupId); if (isSaved == 1) { new Thread(delegate() { GetUserActivities(gplusAcc.GpUserId, gplusAcc.AccessToken, settings, _logger); }).Start(); } } } return(isSaved); }
public static List <Domain.Socioboard.Models.Mongo.InstagramDailyReport> getInstagramReportData(string profileId, int daysCount, Helper.Cache _redisCache, Helper.AppSettings _appSettings) { MongoRepository mongorepo = new MongoRepository("InstagramDailyReport", _appSettings); List <Domain.Socioboard.Models.Mongo.InstagramDailyReport> inMemFacaebookPageDailyReports = _redisCache.Get <List <Domain.Socioboard.Models.Mongo.InstagramDailyReport> >(Domain.Socioboard.Consatants.SocioboardConsts.CacheInstagramDailyReport + profileId); if (inMemFacaebookPageDailyReports != null) { return(inMemFacaebookPageDailyReports); } else { DateTime dayStart = new DateTime(DateTime.UtcNow.AddDays(-daysCount).Year, DateTime.UtcNow.AddDays(-daysCount).Month, DateTime.UtcNow.AddDays(-daysCount).Day, 0, 0, 0, DateTimeKind.Utc); DateTime dayEnd = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, 23, 59, 59, DateTimeKind.Utc); var ret = mongorepo.Find <Domain.Socioboard.Models.Mongo.InstagramDailyReport>(t => t.profileId == profileId && t.date <= Helper.DateExtension.ConvertToUnixTimestamp(dayEnd) && t.date >= Helper.DateExtension.ConvertToUnixTimestamp(dayStart)); var task = Task.Run(async() => { return(await ret); }); if (task.Result != null) { IList <Domain.Socioboard.Models.Mongo.InstagramDailyReport> lstfbpagereportdata = task.Result.ToList(); if (lstfbpagereportdata.Count > 0) { _redisCache.Set(Domain.Socioboard.Consatants.SocioboardConsts.CacheInstagramDailyReport + profileId, lstfbpagereportdata.ToList()); } return(lstfbpagereportdata.OrderBy(t => t.date).ToList()); } return(new List <Domain.Socioboard.Models.Mongo.InstagramDailyReport>()); } }
public static Domain.Socioboard.Models.GoogleAnalyticsAccount getGAAccount(string GaAccountId, Helper.Cache _redisCache, Model.DatabaseRepository dbr) { try { Domain.Socioboard.Models.GoogleAnalyticsAccount inMemGAAcc = _redisCache.Get <Domain.Socioboard.Models.GoogleAnalyticsAccount>(Domain.Socioboard.Consatants.SocioboardConsts.CacheGAAccount + GaAccountId); if (inMemGAAcc != null) { return(inMemGAAcc); } } catch { } List <Domain.Socioboard.Models.GoogleAnalyticsAccount> lstGAAcc = dbr.Find <Domain.Socioboard.Models.GoogleAnalyticsAccount>(t => t.GaProfileId.Equals(GaAccountId)).ToList(); if (lstGAAcc != null && lstGAAcc.Count() > 0) { _redisCache.Set(Domain.Socioboard.Consatants.SocioboardConsts.CacheGplusAccount + GaAccountId, lstGAAcc.First()); return(lstGAAcc.First()); } else { return(null); } }
public static string PostRssfeed(string profileId, string Url, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr, Helper.Cache _redisCache) { string ret = ""; string[] lstProfileIds = null; if (profileId != null) { lstProfileIds = profileId.Split(','); profileId = lstProfileIds[0]; } foreach (var itemPrf in lstProfileIds) { string prId = itemPrf.Substring(5, itemPrf.Length - 5); MongoRepository _RssFeedRepository = new MongoRepository("RssFeed", _appSettings); List <Domain.Socioboard.Models.Mongo.RssFeed> objrssdata = new List <Domain.Socioboard.Models.Mongo.RssFeed>(); var rt = _RssFeedRepository.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.ProfileId.Equals(prId) && t.Status == false); var task = Task.Run(async() => { return(await rt); }); IList <Domain.Socioboard.Models.Mongo.RssFeed> _objrssdata = task.Result; objrssdata = _objrssdata.ToList(); foreach (var item in objrssdata) { if (_objrssdata.First().ProfileType == Domain.Socioboard.Enum.SocialProfileType.Facebook || _objrssdata.First().ProfileType == Domain.Socioboard.Enum.SocialProfileType.FacebookFanPage) { try { Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = Repositories.FacebookRepository.getFacebookAccount(item.ProfileId, _redisCache, dbr); ret = Helper.FacebookHelper.FacebookComposeMessageRss(item.Message, _Facebookaccounts.AccessToken, _Facebookaccounts.FbUserId, item.Title, item.Link, item.strId, _appSettings); } catch (Exception ex) { return(""); } } else if (_objrssdata.First().ProfileType == Domain.Socioboard.Enum.SocialProfileType.Twitter) { try { string message = ""; string UrlShortendata = GetShortenUrl(item.Link, _appSettings); string shortenUrl = string.Empty; try { JObject JData = JObject.Parse(UrlShortendata); if (JData["status_txt"].ToString() == "OK") { shortenUrl = JData["data"]["url"].ToString(); } } catch (Exception ex) { } if (item.Message.Length > 115) { message = item.Message.Substring(0, 115); } else { message = item.Message; } message += " " + shortenUrl; Domain.Socioboard.Models.TwitterAccount _TwitterAccount = Repositories.TwitterRepository.getTwitterAccount(item.ProfileId, _redisCache, dbr); ret = Helper.TwitterHelper.TwitterComposeMessageRss(message, _TwitterAccount.oAuthToken, _TwitterAccount.oAuthSecret, _TwitterAccount.twitterUserId, _TwitterAccount.twitterScreenName, item.strId, _appSettings); } catch (Exception ex) { return(""); } } } return(ret); } return(ret); }
/// <summary> /// Adds an Instagram hashtag if not exists in db else it's returns existing hashtag Id /// </summary> /// <param name="hashTag"> hashtag needs to search.</param> /// <param name="boardId"> board id to which we need to add the hasttag.</param> /// <param name="_redisCache"> redis cache object</param> /// <param name="settings">Application settings class </param> /// <param name="_logger"> Serial log object</param> /// <returns>instagram hashtag id</returns> public async Task <string> AddInstagramHashTag(string hashTag, string boardId, Helper.Cache _redisCache, Helper.AppSettings settings, ILogger _logger) { MongoBoardInstagramHashTag binstacc = new MongoBoardInstagramHashTag { Id = ObjectId.GenerateNewId(), strId = ObjectId.GenerateNewId().ToString(), Bio = "tag", Boardid = boardId, Entrydate = DateTime.UtcNow.ToString(), Followedbycount = string.Empty, Followscount = string.Empty, Media = string.Empty, Profileid = hashTag, Profilepicurl = string.Empty, Username = hashTag.ToLower() }; MongoRepository boardrepo = new MongoRepository("MongoBoardInstagramHashTag", settings); IList <MongoBoardInstagramHashTag> objInstagramPagelist = await boardrepo.Find <MongoBoardInstagramHashTag>(t => t.Username.Equals(hashTag.ToLower()) && t.Bio.Equals("tag")).ConfigureAwait(false); if (objInstagramPagelist.Count() > 0) { return(objInstagramPagelist.First().strId.ToString()); } await boardrepo.Add <MongoBoardInstagramHashTag>(binstacc).ConfigureAwait(false); new Thread(delegate() { AddBoardInstagramTagFeeds(hashTag, binstacc.strId.ToString(), _redisCache, settings, _logger); }).Start(); return(binstacc.strId.ToString()); }
public static string DeleteCompanyPageProfile(Model.DatabaseRepository dbr, string profileId, long userId, Helper.Cache _redisCache, Helper.AppSettings _appSettings) { Domain.Socioboard.Models.LinkedinCompanyPage fbAcc = dbr.Find <Domain.Socioboard.Models.LinkedinCompanyPage>(t => t.LinkedinPageId.Equals(profileId) && t.UserId == userId && t.IsActive).FirstOrDefault(); if (fbAcc != null) { //fbAcc.IsActive = false; //dbr.Update<Domain.Socioboard.Models.LinkedinCompanyPage>(fbAcc); dbr.Delete <Domain.Socioboard.Models.LinkedinCompanyPage>(fbAcc); _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheLinkedInCompanyPage + profileId); return("Deleted"); } else { return("Account Not Exist"); } }
public static Domain.Socioboard.Models.LinkedinCompanyPage getLinkedinCompanyPage(string LICompanyPageUserId, Helper.Cache _redisCache, Model.DatabaseRepository dbr) { try { Domain.Socioboard.Models.LinkedinCompanyPage inMemLiAcc = _redisCache.Get <Domain.Socioboard.Models.LinkedinCompanyPage>(Domain.Socioboard.Consatants.SocioboardConsts.CacheLinkedInCompanyPage + LICompanyPageUserId); if (inMemLiAcc != null) { return(inMemLiAcc); } } catch { } try { List <Domain.Socioboard.Models.LinkedinCompanyPage> lstLiAcc = dbr.Find <Domain.Socioboard.Models.LinkedinCompanyPage>(t => t.LinkedinPageId.Equals(LICompanyPageUserId) && t.IsActive).ToList(); if (lstLiAcc != null) { _redisCache.Set(Domain.Socioboard.Consatants.SocioboardConsts.CacheLinkedInCompanyPage + LICompanyPageUserId, lstLiAcc.First()); return(lstLiAcc.First()); } else { return(null); } } catch (Exception ex) { return(null); } }
public static Domain.Socioboard.Models.LinkedInData GetTopCompanyPagePosts(string PageId, long userId, Helper.Cache _redisCache, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr, int skip, int count) { List <Domain.Socioboard.Models.Mongo.LinkedinCompanyPagePosts> inMemCompanyPagePosts = _redisCache.Get <List <Domain.Socioboard.Models.Mongo.LinkedinCompanyPagePosts> >(Domain.Socioboard.Consatants.SocioboardConsts.CacheLinkedInCompanyPageFeed + PageId); if (inMemCompanyPagePosts != null) { Domain.Socioboard.Models.LinkedInData _LinkedInData = new Domain.Socioboard.Models.LinkedInData(); _LinkedInData._LinkedinCompanyPage = Repositories.LinkedInAccountRepository.getLinkedinCompanyPage(PageId, _redisCache, dbr); _LinkedInData._LinkedinCompanyPagePosts = inMemCompanyPagePosts; return(_LinkedInData); } else { List <Domain.Socioboard.Models.Mongo.LinkedinCompanyPagePosts> lstLinkedinCompanyPagePosts = new List <LinkedinCompanyPagePosts>(); MongoRepository _linkedincompanypagereppo = new MongoRepository("LinkedinCompanyPagePosts", _appSettings); var builder = Builders <LinkedinCompanyPagePosts> .Sort; var sort = builder.Descending(t => t.PostDate); var ret = _linkedincompanypagereppo.FindWithRange <Domain.Socioboard.Models.Mongo.LinkedinCompanyPagePosts>(t => t.PageId.Equals(PageId), sort, 0, 100); var task = Task.Run(async() => { return(await ret); }); lstLinkedinCompanyPagePosts = task.Result.ToList(); if (lstLinkedinCompanyPagePosts.Count > 0) { _redisCache.Set(Domain.Socioboard.Consatants.SocioboardConsts.CacheLinkedInCompanyPageFeed + PageId, lstLinkedinCompanyPagePosts); } Domain.Socioboard.Models.LinkedInData _LinkedInData = new Domain.Socioboard.Models.LinkedInData(); _LinkedInData._LinkedinCompanyPage = Repositories.LinkedInAccountRepository.getLinkedinCompanyPage(PageId, _redisCache, dbr); _LinkedInData._LinkedinCompanyPagePosts = lstLinkedinCompanyPagePosts; return(_LinkedInData); } }
public static string PostCommentOnLinkedinCompanyPage(string LinkedinPageId, string Updatekey, string comment, long userId, Helper.Cache _redisCache, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr) { string postdata = Helper.LinkedInHelper.PostCommentOnLinkedinCompanyPage(userId, comment, Updatekey, LinkedinPageId, _redisCache, dbr, _appSettings); if (postdata != "Failed") { MongoRepository _linkedincompanypagereppo = new MongoRepository("LinkedinCompanyPagePosts", _appSettings); var ret = _linkedincompanypagereppo.Find <Domain.Socioboard.Models.Mongo.LinkedinCompanyPagePosts>(t => t.PageId == LinkedinPageId && t.UpdateKey.Equals(Updatekey)); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; Domain.Socioboard.Models.Mongo.LinkedinCompanyPagePosts _LinkedinCompanyPagePosts = task.Result.First(); if (count > 0) { var builders = Builders <BsonDocument> .Filter; FilterDefinition <BsonDocument> filter = builders.Eq("UpdateKey", Updatekey); var update = Builders <BsonDocument> .Update.Set("Comments", _LinkedinCompanyPagePosts.Comments + 1); _linkedincompanypagereppo.Update <Domain.Socioboard.Models.Mongo.LinkedinCompanyPagePosts>(update, filter); } } return(postdata); }
public static string AddLinkedInCompantPage(oAuthLinkedIn _oauth, dynamic profile, Model.DatabaseRepository dbr, Int64 userId, Int64 groupId, string accesstoken, Helper.Cache _redisCache, Helper.AppSettings _appSettings, ILogger _logger) { int isSaved = 0; Domain.Socioboard.Models.LinkedinCompanyPage _LinkedInAccount = Repositories.LinkedInAccountRepository.getLinkedinCompanyPage(profile.Pageid.ToString(), _redisCache, dbr); if (_LinkedInAccount != null && _LinkedInAccount.IsActive == false) { _LinkedInAccount.IsActive = true; _LinkedInAccount.UserId = userId; _LinkedInAccount.EmailDomains = profile.EmailDomains.ToString(); _LinkedInAccount.OAuthToken = accesstoken; _LinkedInAccount.LinkedinPageName = profile.name.ToString(); _LinkedInAccount.lastUpdate = DateTime.UtcNow; try { string NuberOfFollower = profile.num_followers.ToString(); _LinkedInAccount.NumFollowers = Convert.ToInt16(NuberOfFollower); } catch { } try { _LinkedInAccount.CompanyType = profile.company_type.ToString(); } catch { } try { _LinkedInAccount.LogoUrl = profile.logo_url.ToString(); } catch { } try { _LinkedInAccount.SquareLogoUrl = profile.square_logo_url.ToString(); } catch { } try { _LinkedInAccount.BlogRssUrl = profile.blog_rss_url.ToString(); } catch { } try { _LinkedInAccount.UniversalName = profile.universal_name.ToString(); } catch { } isSaved = dbr.Update <Domain.Socioboard.Models.LinkedinCompanyPage>(_LinkedInAccount); } else if (_LinkedInAccount == null) { _LinkedInAccount = new Domain.Socioboard.Models.LinkedinCompanyPage(); _LinkedInAccount.LinkedinPageId = profile.Pageid.ToString(); _LinkedInAccount.IsActive = true; _LinkedInAccount.UserId = userId; _LinkedInAccount.lastUpdate = DateTime.UtcNow; try { _LinkedInAccount.EmailDomains = profile.EmailDomains.ToString(); } catch (Exception ex) { } _LinkedInAccount.LinkedinPageName = profile.name.ToString(); _LinkedInAccount.OAuthToken = _oauth.Token; _LinkedInAccount.OAuthSecret = _oauth.TokenSecret; _LinkedInAccount.OAuthVerifier = _oauth.Verifier; try { _LinkedInAccount.Description = profile.description.ToString(); } catch { } try { _LinkedInAccount.FoundedYear = profile.founded_year.ToString(); } catch { } try { _LinkedInAccount.EndYear = profile.end_year.ToString(); } catch { } try { _LinkedInAccount.Locations = profile.locations.ToString(); } catch { } try { _LinkedInAccount.Specialties = profile.Specialties.ToString(); } catch { } try { _LinkedInAccount.WebsiteUrl = profile.website_url.ToString(); } catch { } try { _LinkedInAccount.Status = profile.status.ToString(); } catch { } try { _LinkedInAccount.EmployeeCountRange = profile.employee_count_range.ToString(); } catch { } try { _LinkedInAccount.Industries = profile.industries.ToString(); } catch { } try { string NuberOfFollower = profile.num_followers.ToString(); _LinkedInAccount.NumFollowers = Convert.ToInt16(NuberOfFollower); } catch { } try { _LinkedInAccount.CompanyType = profile.company_type.ToString(); } catch { } try { _LinkedInAccount.LogoUrl = profile.logo_url.ToString(); } catch (Exception ex) { _LinkedInAccount.LogoUrl = "https://www.takeaway.com/images/icons/_blankprofile.png"; } try { _LinkedInAccount.SquareLogoUrl = profile.square_logo_url.ToString(); } catch { } try { _LinkedInAccount.BlogRssUrl = profile.blog_rss_url.ToString(); } catch { } try { _LinkedInAccount.UniversalName = profile.universal_name.ToString(); } catch { } isSaved = dbr.Add <Domain.Socioboard.Models.LinkedinCompanyPage>(_LinkedInAccount); if (isSaved == 1) { List <Domain.Socioboard.Models.LinkedinCompanyPage> lstliAcc = dbr.Find <Domain.Socioboard.Models.LinkedinCompanyPage>(t => t.LinkedinPageId.Equals(_LinkedInAccount.LinkedinPageId)).ToList(); if (lstliAcc != null && lstliAcc.Count() > 0) { isSaved = GroupProfilesRepository.AddGroupProfile(groupId, lstliAcc.First().LinkedinPageId, lstliAcc.First().LinkedinPageName, userId, lstliAcc.First().LogoUrl, Domain.Socioboard.Enum.SocialProfileType.LinkedInComapanyPage, dbr); if (isSaved == 1) { _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheUserProfileCount + userId); _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheGroupProfiles + groupId); new Thread(delegate() { LinkedInAccountRepository.SaveLinkedInCompanyPageFeed(_oauth, lstliAcc.First().LinkedinPageId, lstliAcc.First().UserId, _appSettings); }).Start(); } } } } else if (_LinkedInAccount != null && _LinkedInAccount.IsActive == true) { if (_LinkedInAccount.UserId != userId) { return("added by other"); } } return(isSaved.ToString()); }
public static List <Domain.Socioboard.Models.Mongo.totalFacebookpagefans> GetTotalFanpageDet(List <Domain.Socioboard.Models.Facebookaccounts> lstfanpageacc, int daysCount, Helper.Cache _redisCache, Helper.AppSettings _appSettings) { MongoRepository mongorepo = new MongoRepository("FacaebookPageDailyReports", _appSettings); string[] profileId = lstfanpageacc.Select(t => t.FbUserId).ToArray(); List <Domain.Socioboard.Models.Mongo.totalFacebookpagefans> inMemFacaebookPageDailyReports = _redisCache.Get <List <Domain.Socioboard.Models.Mongo.totalFacebookpagefans> >(Domain.Socioboard.Consatants.SocioboardConsts.CacheInstagramDailyReport + profileId); if (inMemFacaebookPageDailyReports != null) { return(inMemFacaebookPageDailyReports); } else { List <Domain.Socioboard.Models.Mongo.totalFacebookpagefans> reportdata = new List <totalFacebookpagefans>(); DateTime dayStart = new DateTime(DateTime.UtcNow.AddDays(-90).Year, DateTime.UtcNow.AddDays(-90).Month, DateTime.UtcNow.AddDays(-90).Day, 0, 0, 0, DateTimeKind.Utc); DateTime dayEnd = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, 23, 59, 59, DateTimeKind.Utc); var ret = mongorepo.Find <Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports>(t => profileId.Contains(t.pageId) && (t.date <= Helper.DateExtension.ConvertToUnixTimestamp(dayEnd)) && (t.date >= Helper.DateExtension.ConvertToUnixTimestamp(dayStart))); var task = Task.Run(async() => { return(await ret); }); if (task.Result != null) { IList <Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports> lstfbfanpage = task.Result.ToList(); lstfbfanpage = lstfbfanpage.OrderByDescending(t => t.date).ToList(); var facebookId = lstfbfanpage.GroupBy(x => x.pageId).Select(x => x.First()).ToList(); var random = new Random(); foreach (Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports lstcolordata in facebookId) { List <Domain.Socioboard.Models.Facebookaccounts> lstacc = new List <Domain.Socioboard.Models.Facebookaccounts>(); var randomColor = String.Format("#{0:X6}", random.Next(0x1000000)); Domain.Socioboard.Models.Mongo.totalFacebookpagefans fbreportData = new totalFacebookpagefans(); // string fansCount = lstfbfanpage.ToList().Where(t => t.pageId == lstcolordata.pageId).Sum(t => Convert.ToInt64(t.perDayLikes)).ToString(); lstacc = lstfanpageacc.Where <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == lstcolordata.pageId).ToList(); //lstFbAcc = lstFbAcc.Where(t => t.FbUserId.Contains("1842605449304385")).ToList(); fbreportData.startdate = dayStart; fbreportData.endtdate = dayEnd; fbreportData.totalfans = lstcolordata.totalLikes; fbreportData.profileId = lstcolordata.pageId; fbreportData.facebookPagename = lstacc.First().FbUserName; fbreportData.profilepic = lstacc.First().ProfileUrl; fbreportData.colors = Convert.ToString(randomColor); reportdata.Add(fbreportData); } if (lstfbfanpage.Count > 0) { _redisCache.Set(Domain.Socioboard.Consatants.SocioboardConsts.CacheInstagramDailyReport + profileId, lstfbfanpage.ToList()); } return(reportdata.OrderBy(t => t.startdate).ToList()); // return lstfbpagereportdata.OrderBy(t => t.date).ToList(); } return(new List <Domain.Socioboard.Models.Mongo.totalFacebookpagefans>()); } }
public static List <Domain.Socioboard.Models.Mongo.FacebookPagePost> getFacebookPagePostReports(string profileId, int daysCount, Helper.Cache _redisCache, Helper.AppSettings _appSettings) { MongoRepository mongorepo = new MongoRepository("FacebookPagePost", _appSettings); DateTime dayStart = new DateTime(DateTime.UtcNow.AddDays(-90).Year, DateTime.UtcNow.AddDays(-90).Month, DateTime.UtcNow.AddDays(-90).Day, 0, 0, 0, DateTimeKind.Utc); DateTime dayEnd = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, 23, 59, 59, DateTimeKind.Utc); var ret = mongorepo.Find <Domain.Socioboard.Models.Mongo.FacebookPagePost>(t => t.PageId == profileId && (t.CreatedTime <= Helper.DateExtension.ToUnixTimestamp(dayEnd) && t.CreatedTime >= Helper.DateExtension.ToUnixTimestamp(dayStart))); var task = Task.Run(async() => { return(await ret); }); IList <Domain.Socioboard.Models.Mongo.FacebookPagePost> lstfacebookpagepost = task.Result.ToList(); return(lstfacebookpagepost.ToList()); }
public static Domain.Socioboard.Models.MongoBoards getBoardFeedsByName(string boardName, Helper.Cache _redisCache, Helper.AppSettings _appSettings, ILogger _logger, DatabaseRepository dbr) { MongoRepository boardrepo = new MongoRepository("MongoBoards", _appSettings); try { Domain.Socioboard.Models.MongoBoards inMemboard = _redisCache.Get <Domain.Socioboard.Models.MongoBoards>(Domain.Socioboard.Consatants.SocioboardConsts.CacheBoard + boardName); if (inMemboard != null) { return(inMemboard); } else { Domain.Socioboard.Models.MongoBoards board = dbr.Find <Domain.Socioboard.Models.MongoBoards>(t => t.boardId.Equals(boardName)).First(); return(board); } } catch (Exception ex) { _logger.LogError(ex.StackTrace); return(null); } }
public static int AddLinkedInAccount(oAuthLinkedIn _oauth, dynamic profile, Model.DatabaseRepository dbr, Int64 userId, Int64 groupId, string accessToken, Helper.Cache _redisCache, Helper.AppSettings settings, ILogger _logger) { int isSaved = 0; Domain.Socioboard.Models.LinkedInAccount _LinkedInAccount = Repositories.LinkedInAccountRepository.getLinkedInAccount(profile.id.ToString(), _redisCache, dbr); if (_LinkedInAccount != null && _LinkedInAccount.IsActive == false) { _LinkedInAccount.IsActive = true; _LinkedInAccount.UserId = userId; _LinkedInAccount.EmailId = profile.email.ToString(); _LinkedInAccount.OAuthToken = accessToken; _LinkedInAccount.Connections = Convert.ToInt32(profile.connections.ToString()); _LinkedInAccount.LastUpdate = DateTime.UtcNow; isSaved = dbr.Update <Domain.Socioboard.Models.LinkedInAccount>(_LinkedInAccount); } else { _LinkedInAccount = new Domain.Socioboard.Models.LinkedInAccount(); _LinkedInAccount.LinkedinUserId = profile.id.ToString(); _LinkedInAccount.IsActive = true; _LinkedInAccount.UserId = userId; _LinkedInAccount.Connections = Convert.ToInt32(profile.connections.ToString()); _LinkedInAccount.LastUpdate = DateTime.UtcNow; try { _LinkedInAccount.EmailId = profile.email.ToString(); } catch (Exception ex) { } _LinkedInAccount.LinkedinUserName = profile.first_name.ToString() + profile.last_name.ToString(); _LinkedInAccount.OAuthToken = _oauth.Token; _LinkedInAccount.OAuthSecret = _oauth.TokenSecret; _LinkedInAccount.OAuthVerifier = _oauth.Verifier; try { _LinkedInAccount.ProfileImageUrl = profile.picture_url.ToString(); } catch (Exception ex) { _LinkedInAccount.ProfileImageUrl = "https://www.takeaway.com/images/icons/_blankprofile.png"; } try { _LinkedInAccount.ProfileUrl = profile.profile_url.ToString(); } catch (Exception ex) { } isSaved = dbr.Add <Domain.Socioboard.Models.LinkedInAccount>(_LinkedInAccount); if (isSaved == 1) { List <Domain.Socioboard.Models.LinkedInAccount> lstliAcc = dbr.Find <Domain.Socioboard.Models.LinkedInAccount>(t => t.LinkedinUserId.Equals(_LinkedInAccount.LinkedinUserId)).ToList(); if (lstliAcc != null && lstliAcc.Count() > 0) { isSaved = GroupProfilesRepository.AddGroupProfile(groupId, lstliAcc.First().LinkedinUserId, lstliAcc.First().LinkedinUserName, userId, lstliAcc.First().ProfileImageUrl, Domain.Socioboard.Enum.SocialProfileType.LinkedIn, dbr); if (isSaved == 1) { _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheUserProfileCount + userId); _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheGroupProfiles + groupId); } } } } return(isSaved); }
public async Task <string> FBPlugingCreateBoard(string boardName, string twitterHashTag, string instagramHashTag, string gplusHashTag, long userId, Helper.Cache _redisCache, Helper.AppSettings settings, ILogger _logger, DatabaseRepository dbr) { if (boardName.Contains("~") || boardName.Contains("@") || boardName.Contains("$") || boardName.Contains("%") || boardName.Contains("^") || boardName.Contains("*") || boardName.Contains("(") || boardName.Contains(")") || boardName.Contains("'") || boardName.Contains("?") || boardName.Contains("+") || boardName.Contains("'\'") || boardName.Contains("| ") || boardName.Contains("/")) { return("You cannot create board with special characters"); } else { IList <Domain.Socioboard.Models.MongoBoards> boards = new List <Domain.Socioboard.Models.MongoBoards>(); try { boards = dbr.Find <Domain.Socioboard.Models.MongoBoards>(t => t.boardName.Equals(boardName.ToLower())); } catch (Exception e) { } string Bid = string.Empty; if (boards == null || boards.Count() == 0) { Domain.Socioboard.Models.MongoBoards board = new Domain.Socioboard.Models.MongoBoards(); board.isActive = Domain.Socioboard.Enum.boardStatus.active; board.boardName = boardName.ToLower(); board.createDate = DateTime.UtcNow; board.userId = userId; board.trendingtype = Domain.Socioboard.Enum.TrendingType.facebook; board.boardId = Guid.NewGuid().ToString(); if (board.boardName.ToLower().Contains(" ")) { board.TempboardName = board.boardName.Replace(" ", "_"); } else { board.TempboardName = boardName.ToLower(); } if (!string.IsNullOrEmpty(twitterHashTag) && twitterHashTag != "undefined") { TwitterRepository tr = new TwitterRepository(); board.twitterHashTag = await tr.AddTwitterHashTagFBPlugin(twitterHashTag, board.boardId, _redisCache, settings, _logger); } if (!string.IsNullOrEmpty(instagramHashTag) && instagramHashTag != "undefined") { InstagramRepository instRepo = new InstagramRepository(); board.instagramHashTag = await instRepo.AddInstagramHashTagFBPlugin(instagramHashTag, board.boardId, _redisCache, settings, _logger); } if (!string.IsNullOrEmpty(gplusHashTag) && gplusHashTag != "undefined") { GplusRepository gplusRepo = new GplusRepository(); board.gplusHashTag = await gplusRepo.AddGplusHashTagFBPlugin(gplusHashTag, board.boardId, _redisCache, settings, _logger); } dbr.Add <Domain.Socioboard.Models.MongoBoards>(board); return("successfulyy added."); } else { Bid = boards.First().boardId; Domain.Socioboard.Models.MongoBoards board = dbr.Single <Domain.Socioboard.Models.MongoBoards>(t => t.boardId == Bid); //TwitterRepository tr = new TwitterRepository(); //board.twitterHashTag = await tr.AddTwitterHashTagFBPlugin(twitterHashTag, board.boardId, _redisCache, settings, _logger); //InstagramRepository instRepo = new InstagramRepository(); //board.instagramHashTag = await instRepo.AddInstagramHashTagFBPlugin(instagramHashTag, board.boardId, _redisCache, settings, _logger); //GplusRepository gplusRepo = new GplusRepository(); //board.gplusHashTag = await gplusRepo.AddGplusHashTagFBPlugin(gplusHashTag, board.boardId, _redisCache, settings, _logger); //board.isActive = Domain.Socioboard.Enum.boardStatus.active; board.createDate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.MongoBoards>(board); return("successfulyy Updated Board."); } } }
public static List <Domain.Socioboard.Models.Groupmembers> LeaveTeam(long groupId, long userId, Helper.Cache _redisCache, Model.DatabaseRepository dbr) { List <Domain.Socioboard.Models.Groupmembers> leave = dbr.Find <Domain.Socioboard.Models.Groupmembers>(t => t.groupid == groupId && t.userId == userId).ToList(); foreach (Domain.Socioboard.Models.Groupmembers item in leave) { dbr.Delete <Domain.Socioboard.Models.Groupmembers>(item); } return(leave); }
public async Task <string> AddInstagramHashTagFBPlugin(string hashTag, string boardId, Helper.Cache _redisCache, Helper.AppSettings _appSettings, ILogger _logger) { MongoBoardInstagramHashTag binstacc = new MongoBoardInstagramHashTag { Id = ObjectId.GenerateNewId(), strId = ObjectId.GenerateNewId().ToString(), Bio = "tag", Boardid = boardId, Entrydate = DateTime.UtcNow.ToString(), Followedbycount = string.Empty, Followscount = string.Empty, Media = string.Empty, Profileid = hashTag, Profilepicurl = string.Empty, Username = hashTag.ToLower() }; MongoRepository boardrepo = new MongoRepository("MongoBoardInstagramHashTag", _appSettings); try { var ret = boardrepo.Find <MongoBoardInstagramHashTag>(t => t.Username.Equals(hashTag.ToLower()) && t.Bio.Equals("tag")); var task = Task.Run(async() => { return(await ret); }); IList <MongoBoardInstagramHashTag> objInstagramPagelist = task.Result.ToList(); if (objInstagramPagelist.Count() > 0) { return(objInstagramPagelist.First().strId.ToString()); } boardrepo.Add <MongoBoardInstagramHashTag>(binstacc); new Thread(delegate() { AddBoardInstagramTagFeeds(hashTag, binstacc.strId.ToString(), _appSettings); }).Start(); return(binstacc.strId.ToString()); } catch (Exception) { boardrepo.Add <MongoBoardInstagramHashTag>(binstacc); new Thread(delegate() { AddBoardInstagramTagFeeds(hashTag, binstacc.strId.ToString(), _appSettings); }).Start(); return(binstacc.strId.ToString()); } }
public static List <Domain.Socioboard.Models.retaingroup> RetainGrpMber(long userId, Helper.Cache _redisCache, Model.DatabaseRepository dbr) { List <Domain.Socioboard.Models.retaingroup> lstgrpdetal = new List <retaingroup>(); List <Groupmembers> lstadmingrpmember = dbr.Find <Groupmembers>(t => t.userId == userId && t.memberStatus == Domain.Socioboard.Enum.GroupMemberStatus.Accepted && t.isAdmin == true).ToList(); List <long> tempLst = new List <long>(); foreach (var itemLst in lstadmingrpmember) { tempLst.Add(itemLst.groupid); } List <Groupmembers> membersAdminGrp = dbr.Find <Domain.Socioboard.Models.Groupmembers>(t => tempLst.Contains(t.groupid) && t.memberStatus == Domain.Socioboard.Enum.GroupMemberStatus.Accepted && t.isAdmin != true).ToList(); List <Groupmembers> lstnonadmingrpmember = dbr.Find <Groupmembers>(t => t.userId == userId && t.memberStatus == Domain.Socioboard.Enum.GroupMemberStatus.Accepted && t.isAdmin != true).ToList(); foreach (var item in membersAdminGrp) { Domain.Socioboard.Models.retaingroup lstretailgrp = new retaingroup(); Groups grp = dbr.Find <Domain.Socioboard.Models.Groups>(t => t.id == item.groupid).First(); string grpname = grp.groupName; lstretailgrp.grpname = grpname; lstretailgrp.username = item.firstName; lstretailgrp.userId = item.email; lstretailgrp.memberid = item.id; lstretailgrp.grpid = item.groupid; lstretailgrp.type = "You"; lstgrpdetal.Add(lstretailgrp); } foreach (var item in lstnonadmingrpmember) { Domain.Socioboard.Models.retaingroup lstretailgrp = new retaingroup(); Groups grp = dbr.Find <Domain.Socioboard.Models.Groups>(t => t.id == item.groupid).First(); string grpname = grp.groupName; lstretailgrp.grpname = grpname; lstretailgrp.username = item.firstName; lstretailgrp.userId = item.email; lstretailgrp.memberid = item.id; lstretailgrp.grpid = item.groupid; lstretailgrp.type = "Other"; lstgrpdetal.Add(lstretailgrp); } //lstretailgrp.memberofadmin = membersAdminGrp; //lstretailgrp.memberofNonadmin = lstnonadmingrpmember; return(lstgrpdetal); }
public bool AddBoardInstagramTagFeeds(string hashTag, string boardInstagramTagId, Helper.Cache _redisCache, Helper.AppSettings settings, ILogger _logger) { MongoRepository boardrepo = new MongoRepository("MongoBoardInstagramFeeds", settings); bool output = false; try { JObject recentactivities = JObject.Parse(TagSearch.InstagramTagSearch(hashTag, settings.InstagramBoardMeAccessToken)); foreach (JObject obj in JArray.Parse(recentactivities["data"].ToString())) { MongoBoardInstagramFeeds binstfeed = new MongoBoardInstagramFeeds(); binstfeed.Id = ObjectId.GenerateNewId(); binstfeed.Instagramaccountid = boardInstagramTagId; binstfeed.Isvisible = true; try { binstfeed.Imageurl = obj["images"]["standard_resolution"]["url"].ToString(); } catch { } try { binstfeed.Link = obj["link"].ToString(); } catch { } try { foreach (JValue tag in JArray.Parse(obj["tags"].ToString())) { try { binstfeed.Tags = tag.ToString() + ","; } catch { } } } catch { } try { binstfeed.Publishedtime = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(new DateTime(1970, 1, 1).AddSeconds(Convert.ToInt64(obj["created_time"].ToString()))); } catch { //binstfeed.Createdtime = DateTime.UtcNow; } try { binstfeed.Feedid = obj["id"].ToString(); } catch { } try { binstfeed.FromId = obj["user"]["username"].ToString(); } catch { } try { binstfeed.FromName = obj["user"]["full_name"].ToString(); } catch { } try { binstfeed.FromPicUrl = obj["user"]["profile_picture"].ToString(); } catch { } try { boardrepo.Add <MongoBoardInstagramFeeds>(binstfeed); } catch (Exception e) { } //if (!boardrepo.checkInstagramFeedExists(binstfeed.Feedid, BoardInstagramTagId)) //{ // boardrepo.addBoardInstagramFeeds(binstfeed); //} } } catch { } return(output); }
public static List <Domain.Socioboard.Models.Groupmembers> findmember(long SBgroupId, long userId, Helper.Cache _redisCache, Model.DatabaseRepository dbr) { try { List <Domain.Socioboard.Models.Groupmembers> inMemGroupMembers = _redisCache.Get <List <Domain.Socioboard.Models.Groupmembers> >(Domain.Socioboard.Consatants.SocioboardConsts.CacheGroupMembers + userId); if (inMemGroupMembers != null) { return(inMemGroupMembers); } } catch { } List <Domain.Socioboard.Models.Groupmembers> groupMembers = dbr.Find <Domain.Socioboard.Models.Groupmembers>(t => t.userId == userId && t.groupid != SBgroupId).ToList(); _redisCache.Set(Domain.Socioboard.Consatants.SocioboardConsts.CacheGroupMembers + userId, groupMembers); return(groupMembers); }
public static Domain.Socioboard.Models.Googleplusaccounts getGPlusAccount(string GPlusUserId, Helper.Cache _redisCache, Model.DatabaseRepository dbr) { try { Domain.Socioboard.Models.Googleplusaccounts inMemGplusAcc = _redisCache.Get <Domain.Socioboard.Models.Googleplusaccounts>(Domain.Socioboard.Consatants.SocioboardConsts.CacheGplusAccount + GPlusUserId); if (inMemGplusAcc != null) { return(inMemGplusAcc); } } catch { } List <Domain.Socioboard.Models.Googleplusaccounts> lstGPlusAcc = dbr.Find <Domain.Socioboard.Models.Googleplusaccounts>(t => t.GpUserId.Equals(GPlusUserId) && t.IsActive).ToList(); if (lstGPlusAcc != null && lstGPlusAcc.Count() > 0) { _redisCache.Set(Domain.Socioboard.Consatants.SocioboardConsts.CacheGplusAccount + GPlusUserId, lstGPlusAcc.First()); return(lstGPlusAcc.First()); } else { return(null); } }
public static List <Domain.Socioboard.Models.Groupmembers> getGroupadmin(long groupId, Helper.Cache _redisCache, Model.DatabaseRepository dbr) { List <Domain.Socioboard.Models.Groupmembers> adminDetails = dbr.Find <Domain.Socioboard.Models.Groupmembers>(t => t.groupid == groupId && t.isAdmin).ToList(); long userID = adminDetails.First().userId; List <Domain.Socioboard.Models.User> user = dbr.Find <Domain.Socioboard.Models.User>(t => t.Id == userID).ToList(); string Email = user.First().EmailId; adminDetails.First().email = Email; return(adminDetails); }
public static int AddGaSites(string profiledata, long userId, long groupId, Helper.Cache _redisCache, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr, IHostingEnvironment _appEnv) { int isSaved = 0; Analytics _Analytics = new Analytics(_appSettings.GoogleConsumerKey, _appSettings.GoogleConsumerSecret, _appSettings.GoogleRedirectUri); Domain.Socioboard.Models.GoogleAnalyticsAccount _GoogleAnalyticsAccount; string[] GAdata = Regex.Split(profiledata, "<:>"); _GoogleAnalyticsAccount = Repositories.GplusRepository.getGAAccount(GAdata[5], _redisCache, dbr); if (_GoogleAnalyticsAccount != null && _GoogleAnalyticsAccount.IsActive == false) { try { _GoogleAnalyticsAccount.UserId = userId; _GoogleAnalyticsAccount.IsActive = true; _GoogleAnalyticsAccount.EntryDate = DateTime.UtcNow; _GoogleAnalyticsAccount.EmailId = GAdata[4]; _GoogleAnalyticsAccount.GaAccountId = GAdata[2]; _GoogleAnalyticsAccount.GaAccountName = GAdata[3]; _GoogleAnalyticsAccount.GaWebPropertyId = GAdata[7]; _GoogleAnalyticsAccount.GaProfileId = GAdata[5]; _GoogleAnalyticsAccount.GaProfileName = GAdata[6]; _GoogleAnalyticsAccount.AccessToken = GAdata[0]; _GoogleAnalyticsAccount.RefreshToken = GAdata[1]; _GoogleAnalyticsAccount.WebsiteUrl = GAdata[8]; string visits = string.Empty; string pageviews = string.Empty; try { string analytics = _Analytics.getAnalyticsData(GAdata[5], "ga:visits,ga:pageviews", DateTime.UtcNow.AddDays(-7).ToString("yyyy-MM-dd"), DateTime.UtcNow.ToString("yyyy-MM-dd"), GAdata[0]); JObject JData = JObject.Parse(analytics); visits = JData["totalsForAllResults"]["ga:visits"].ToString(); pageviews = JData["totalsForAllResults"]["ga:pageviews"].ToString(); } catch (Exception ex) { visits = "0"; pageviews = "0"; } _GoogleAnalyticsAccount.Views = Double.Parse(pageviews); _GoogleAnalyticsAccount.Visits = Double.Parse(visits); _GoogleAnalyticsAccount.ProfilePicUrl = "https://www.socioboard.com/Contents/Socioboard/images/analytics_img.png"; _GoogleAnalyticsAccount.EntryDate = DateTime.UtcNow; } catch (Exception ex) { } dbr.Update <Domain.Socioboard.Models.GoogleAnalyticsAccount>(_GoogleAnalyticsAccount); } else { try { _GoogleAnalyticsAccount = new Domain.Socioboard.Models.GoogleAnalyticsAccount(); _GoogleAnalyticsAccount.UserId = userId; _GoogleAnalyticsAccount.IsActive = true; _GoogleAnalyticsAccount.EntryDate = DateTime.UtcNow; _GoogleAnalyticsAccount.EmailId = GAdata[4]; _GoogleAnalyticsAccount.GaAccountId = GAdata[2]; _GoogleAnalyticsAccount.GaAccountName = GAdata[3]; _GoogleAnalyticsAccount.GaWebPropertyId = GAdata[7]; _GoogleAnalyticsAccount.GaProfileId = GAdata[5]; _GoogleAnalyticsAccount.GaProfileName = GAdata[6]; _GoogleAnalyticsAccount.AccessToken = GAdata[0]; _GoogleAnalyticsAccount.RefreshToken = GAdata[1]; _GoogleAnalyticsAccount.WebsiteUrl = GAdata[8]; string visits = string.Empty; string pageviews = string.Empty; try { string analytics = _Analytics.getAnalyticsData(GAdata[5], "ga:visits,ga:pageviews", DateTime.UtcNow.AddDays(-7).ToString("yyyy-MM-dd"), DateTime.UtcNow.ToString("yyyy-MM-dd"), GAdata[0]); JObject JData = JObject.Parse(analytics); visits = JData["totalsForAllResults"]["ga:visits"].ToString(); pageviews = JData["totalsForAllResults"]["ga:pageviews"].ToString(); } catch (Exception ex) { visits = "0"; pageviews = "0"; } _GoogleAnalyticsAccount.Views = Double.Parse(pageviews); _GoogleAnalyticsAccount.Visits = Double.Parse(visits); _GoogleAnalyticsAccount.ProfilePicUrl = "https://www.socioboard.com/Themes/Socioboard/Contents/img/analytics_img.png"; _GoogleAnalyticsAccount.EntryDate = DateTime.UtcNow; } catch (Exception ex) { } isSaved = dbr.Add <Domain.Socioboard.Models.GoogleAnalyticsAccount>(_GoogleAnalyticsAccount); } if (isSaved == 1) { List <Domain.Socioboard.Models.GoogleAnalyticsAccount> lstgaAcc = dbr.Find <Domain.Socioboard.Models.GoogleAnalyticsAccount>(t => t.GaProfileId.Equals(_GoogleAnalyticsAccount.GaProfileId)).ToList(); if (lstgaAcc != null && lstgaAcc.Count() > 0) { isSaved = GroupProfilesRepository.AddGroupProfile(groupId, lstgaAcc.First().GaProfileId, lstgaAcc.First().GaProfileName, userId, lstgaAcc.First().ProfilePicUrl, Domain.Socioboard.Enum.SocialProfileType.GoogleAnalytics, dbr); //codes to delete cache _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheUserProfileCount + userId); _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheGroupProfiles + groupId); } } return(isSaved); }
public static List <Domain.Socioboard.Models.Groupmembers> adminDelete(long groupId, Helper.Cache _redisCache, Model.DatabaseRepository dbr) { List <Domain.Socioboard.Models.Groupmembers> adminDetails = dbr.Find <Domain.Socioboard.Models.Groupmembers>(t => t.groupid == groupId).ToList(); foreach (Domain.Socioboard.Models.Groupmembers item in adminDetails) { Groupmembers user = item; dbr.Delete <Domain.Socioboard.Models.Groupmembers>(user); } List <Domain.Socioboard.Models.Groups> groupName = dbr.Find <Domain.Socioboard.Models.Groups>(t => t.id == groupId).ToList(); foreach (Domain.Socioboard.Models.Groups item in groupName) { Groups group = item; dbr.Delete <Domain.Socioboard.Models.Groups>(group); } return(adminDetails); }
public static List <Domain.Socioboard.Models.Mongo.MongoGplusFeed> getgoogleplusActivity(string profileId, Helper.Cache _redisCache, Helper.AppSettings _appSettings) { MongoRepository gplusFeedRepo = new MongoRepository("MongoGplusFeed", _appSettings); List <Domain.Socioboard.Models.Mongo.MongoGplusFeed> iMmemMongoGplusFeed = _redisCache.Get <List <Domain.Socioboard.Models.Mongo.MongoGplusFeed> >(Domain.Socioboard.Consatants.SocioboardConsts.CacheGplusRecent100Feeds + profileId); if (iMmemMongoGplusFeed != null && iMmemMongoGplusFeed.Count > 0) { return(iMmemMongoGplusFeed); } else { var builder = Builders <MongoGplusFeed> .Sort; var sort = builder.Descending(t => t.PublishedDate); var ret = gplusFeedRepo.FindWithRange <Domain.Socioboard.Models.Mongo.MongoGplusFeed>(t => t.GpUserId.Equals(profileId), sort, 0, 100); var task = Task.Run(async() => { return(await ret); }); IList <Domain.Socioboard.Models.Mongo.MongoGplusFeed> lstMongoGplusFeed = task.Result.ToList(); if (lstMongoGplusFeed.Count > 0) { _redisCache.Set(Domain.Socioboard.Consatants.SocioboardConsts.CacheGplusRecent100Feeds + profileId, lstMongoGplusFeed.ToList()); } return(lstMongoGplusFeed.ToList()); } }
public static List <Domain.Socioboard.Models.Mongo.RssNewsContentsFeeds> GetRssNewsPostedFeeds(string userId, Helper.Cache _redisCache, Helper.AppSettings _appSettings) { string[] profileids = null; //MongoRepository _RssRepository = new MongoRepository("RssNewsContentsFeeds", _appSettings); List <Domain.Socioboard.Models.Mongo.RssNewsContentsFeeds> _RssRepository = _redisCache.Get <List <Domain.Socioboard.Models.Mongo.RssNewsContentsFeeds> >(Domain.Socioboard.Consatants.SocioboardConsts.CacheTwitterRecent100Feeds + userId); if (_RssRepository != null) { return(_RssRepository); } else { MongoRepository mongorepo = new MongoRepository("RssNewsContentsFeeds", _appSettings); // MongoRepository mongorepo = new MongoRepository("MongoTwitterFeed", settings); var builder = Builders <RssNewsContentsFeeds> .Sort; var sort = builder.Descending(t => t.PublishingDate); var result = mongorepo.FindWithRange <RssNewsContentsFeeds>(t => t.UserId.Equals(userId), sort, 0, 200); var task = Task.Run(async() => { return(await result); }); IList <RssNewsContentsFeeds> lstRss = task.Result; if (lstRss != null) { _redisCache.Set(Domain.Socioboard.Consatants.SocioboardConsts.CacheTwitterRecent100Feeds + userId, lstRss.ToList()); return(lstRss.ToList()); } return(null); } // List<Domain.Socioboard.Models.Mongo.RssNewsContentsFeeds> lstRss = new List<Domain.Socioboard.Models.Mongo.RssNewsContentsFeeds>(); //List<Domain.Socioboard.Models.Groupprofiles> lstGroupprofiles = dbr.Find<Domain.Socioboard.Models.Groupprofiles>(t => t.profileOwnerId == userId).ToList(); //profileids = lstGroupprofiles.Select(t => t.profileId).ToArray(); //var ret = _RssRepository.Find<Domain.Socioboard.Models.Mongo.RssNewsContentsFeeds>(t => t.UserId == userId);//UserId //var task = Task.Run(async () => //{ // return await ret; //}); // return lstRss = task.Result.ToList(); }
public static Domain.Socioboard.Models.YoutubeChannel getYTChannel(string YtChannelId, Helper.Cache _redisCache, Model.DatabaseRepository dbr) { try { Domain.Socioboard.Models.YoutubeChannel inMemYTChannel = _redisCache.Get <Domain.Socioboard.Models.YoutubeChannel>(Domain.Socioboard.Consatants.SocioboardConsts.CacheYTChannel + YtChannelId); if (inMemYTChannel != null) { return(inMemYTChannel); } } catch { } List <Domain.Socioboard.Models.YoutubeChannel> lstYTChannel = dbr.Find <Domain.Socioboard.Models.YoutubeChannel>(t => t.YtubeChannelId.Equals(YtChannelId)).ToList(); if (lstYTChannel != null && lstYTChannel.Count() > 0) { _redisCache.Set(Domain.Socioboard.Consatants.SocioboardConsts.CacheYTChannel + YtChannelId, lstYTChannel.First()); return(lstYTChannel.First()); } else { return(null); } }
public static List <Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports> GetFbpageDetails(string[] lstfbpageid, Model.DatabaseRepository dbr, Helper.Cache _redisCache, Helper.AppSettings _appSettings) { List <Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports> inMemFacaebookPageDailyReports = _redisCache.Get <List <Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports> >(Domain.Socioboard.Consatants.SocioboardConsts.CacheInstagramDailyReport + lstfbpageid); if (inMemFacaebookPageDailyReports != null) { return(inMemFacaebookPageDailyReports); } else { List <Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports> fbpdailyrep = new List <FacaebookPageDailyReports>(); Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports fbdailyrepodata = new FacaebookPageDailyReports(); MongoRepository mongorepo = new MongoRepository("FacaebookPageDailyReports", _appSettings); DateTime dayStart = new DateTime(DateTime.UtcNow.AddDays(-90).Year, DateTime.UtcNow.AddDays(-90).Month, DateTime.UtcNow.AddDays(-90).Day, 0, 0, 0, DateTimeKind.Utc); DateTime dayEnd = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, 23, 59, 59, DateTimeKind.Utc); var ret = mongorepo.Find <Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports>(t => lstfbpageid.Contains(t.pageId) && t.date <= Helper.DateExtension.ConvertToUnixTimestamp(dayEnd) && t.date >= Helper.DateExtension.ConvertToUnixTimestamp(dayStart)); var task = Task.Run(async() => { return(await ret); }); if (task.Result != null) { List <Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports> lstfbpagedet = task.Result.ToList(); if (lstfbpagedet.Count > 0) { _redisCache.Set(Domain.Socioboard.Consatants.SocioboardConsts.CacheInstagramDailyReport + lstfbpageid, lstfbpagedet.ToList()); } return(lstfbpagedet.OrderBy(t => t.date).ToList()); } return(new List <Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports>()); } }