public static string EditgroupShareathon(string GroupShareathodId, long userId, string FacebookUrl, string FacebookGroupId, string Facebookaccountid, int Timeintervalminutes, Helper.Cache _redisCache, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr)
        {
            string[] groupids  = null;
            string   groupId   = "";
            string   groupName = "";

            Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = Repositories.FacebookRepository.getFacebookAccount(Facebookaccountid, _redisCache, dbr);
            string pageid = Helper.FacebookHelper.GetFbPageDetails(FacebookUrl, _Facebookaccounts.AccessToken);

            groupids = FacebookGroupId.Split(',');
            foreach (var item in groupids)
            {
                string[] grpId = Regex.Split(item, "<:>");
                groupId   = grpId[1] + ',' + groupId;
                groupName = grpId[0] + ',' + groupName;
            }
            try
            {
                MongoRepository _ShareathonRepository = new MongoRepository("GroupShareathon", _appSettings);
                var             builders = Builders <BsonDocument> .Filter;
                FilterDefinition <BsonDocument> filter = builders.Eq("strId", GroupShareathodId);
                var update = Builders <BsonDocument> .Update.Set("Facebookaccountid", _Facebookaccounts.FbUserId).Set("Facebookusername", _Facebookaccounts.FbUserName).Set("FacebookPageId", pageid.TrimEnd(','))
                             .Set("Facebookgroupid", groupId.TrimEnd(',')).Set("FacebookPageUrl", FacebookUrl).Set("Facebookgroupname", groupName.TrimEnd(',')).Set("Facebooknameid", FacebookGroupId)
                             .Set("Timeintervalminutes", Timeintervalminutes);

                _ShareathonRepository.Update <Domain.Socioboard.Models.Mongo.GroupShareathon>(update, filter);
                return("Success");
            }
            catch (Exception ex)
            {
                return("Error");
            }
        }
        public static string EditPageShareathon(string PageShareathodId, long userId, string FacebookPageId, string Facebookaccountid, int Timeintervalminutes, Helper.Cache _redisCache, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr)
        {
            try
            {
                string[] profileids       = null;
                string   facebookpagename = "";
                profileids = FacebookPageId.Split(',');
                foreach (var item in profileids)
                {
                    Domain.Socioboard.Models.Facebookaccounts objfacebookpage = Repositories.FacebookRepository.getFacebookAccount(item, _redisCache, dbr);
                    facebookpagename = objfacebookpage.FbUserName + ',' + facebookpagename;
                }

                Domain.Socioboard.Models.Facebookaccounts objfacebook = Repositories.FacebookRepository.getFacebookAccount(Facebookaccountid, _redisCache, dbr);
                MongoRepository _ShareathonRepository = new MongoRepository("Shareathon", _appSettings);
                var             builders = Builders <BsonDocument> .Filter;
                FilterDefinition <BsonDocument> filter = builders.Eq("strId", PageShareathodId);
                var update = Builders <BsonDocument> .Update.Set("Facebookaccountid", objfacebook.FbUserId).Set("FacebookPageId", FacebookPageId)
                             .Set("Timeintervalminutes", Timeintervalminutes).Set("Facebookusername", objfacebook.FbUserName).Set("Facebookpagename", facebookpagename.TrimEnd(','));

                _ShareathonRepository.Update <Domain.Socioboard.Models.Mongo.PageShareathon>(update, filter);
                return("Success");
            }
            catch (Exception ex)
            {
                return("Error");
            }
        }
 private static void schedulemessages(DatabaseRepository dbr, IGrouping <string, Domain.Socioboard.Models.ScheduledMessage> items)
 {
     try
     {
         Domain.Socioboard.Models.Facebookaccounts _facebook = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == items.Key && t.IsActive);
         if (_facebook != null)
         {
             foreach (var item in items)
             {
                 try
                 {
                     Console.WriteLine(item.socialprofileName + "Scheduling Started");
                     FacebookScheduler.PostFacebookMessage(item, _facebook);
                     Console.WriteLine(item.socialprofileName + "Scheduling");
                 }
                 catch (Exception)
                 {
                 }
             }
             _facebook.SchedulerUpdate = DateTime.UtcNow;
             dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(_facebook);
         }
     }
     catch (Exception ex)
     {
         //  Thread.Sleep(60000);
     }
 }
        public IActionResult AddRssUrl(long userId, long groupId, string rssUrl, string profileId)
        {
            try
            {
                XmlDocument xmlDoc = new XmlDocument();     // Create an XML document object
                xmlDoc.Load(rssUrl);
                var abc = xmlDoc.DocumentElement.GetElementsByTagName("item");
                if (abc.Count == 0)
                {
                    return(Ok("This Url Does't  Conatin Rss Feed"));
                }
            }
            catch (Exception ex)
            {
                return(Ok("This Url Does't  Conatin Rss Feed"));
            }

            DatabaseRepository dbr         = new DatabaseRepository(_logger, _env);
            string             _RssFeedUrl = Repositories.RssFeedRepository.AddRssUrl(profileId, rssUrl, dbr);

            if (_RssFeedUrl != "null")
            {
                string[] lstProfileIds = null;
                if (profileId != null)
                {
                    lstProfileIds = profileId.Split(',');
                    profileId     = lstProfileIds[0];
                }
                else
                {
                    return(Ok("profileId required"));
                }

                foreach (var item in lstProfileIds)
                {
                    if (item.StartsWith("fb"))
                    {
                        string prId = item.Substring(3, item.Length - 3);
                        Domain.Socioboard.Models.Facebookaccounts objFacebookAccount = Api.Socioboard.Repositories.FacebookRepository.getFacebookAccount(prId, _redisCache, dbr);
                        string ret = Repositories.RssFeedRepository.AddRssFeed(rssUrl, userId, prId, Domain.Socioboard.Enum.SocialProfileType.Facebook, "http://graph.facebook.com/" + objFacebookAccount.FbUserId + "/picture?type=small", objFacebookAccount.FbUserName, null, dbr, _appSettings);
                    }

                    if (item.StartsWith("page"))
                    {
                        string prId = item.Substring(5, item.Length - 5);
                        Domain.Socioboard.Models.Facebookaccounts objFacebookAccount = Api.Socioboard.Repositories.FacebookRepository.getFacebookAccount(prId, _redisCache, dbr);
                        string ret = Repositories.RssFeedRepository.AddRssFeed(rssUrl, userId, prId, Domain.Socioboard.Enum.SocialProfileType.FacebookFanPage, "http://graph.facebook.com/" + objFacebookAccount.FbUserId + "/picture?type=small", objFacebookAccount.FbUserName, null, dbr, _appSettings);
                    }
                    if (item.StartsWith("tw"))
                    {
                        string prId = item.Substring(3, item.Length - 3);
                        Domain.Socioboard.Models.TwitterAccount objTwitterAccount = Api.Socioboard.Repositories.TwitterRepository.getTwitterAccount(prId, _redisCache, dbr);
                        string ret = Repositories.RssFeedRepository.AddRssFeed(rssUrl, userId, prId, Domain.Socioboard.Enum.SocialProfileType.Twitter, objTwitterAccount.profileImageUrl, objTwitterAccount.twitterName, null, dbr, _appSettings);
                    }
                }
            }
            return(Ok("Added Successfully"));
        }
        public static string AddGroupShareathon(long userId, string FacebookUrl, string FacebookGroupId, string Facebookaccountid, int Timeintervalminutes, Helper.Cache _redisCache, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr)
        {
            string[] profileids = null;
            string[] groupids   = null;
            string   groupId    = "";
            string   groupName  = "";

            Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = Repositories.FacebookRepository.getFacebookAccount(Facebookaccountid, _redisCache, dbr);
            string pageid = Helper.FacebookHelper.GetFbPageDetails(FacebookUrl, _Facebookaccounts.AccessToken);

            Domain.Socioboard.Models.Mongo.GroupShareathon _GroupShareathon = new Domain.Socioboard.Models.Mongo.GroupShareathon();
            _GroupShareathon.Id     = ObjectId.GenerateNewId();
            _GroupShareathon.strId  = ObjectId.GenerateNewId().ToString();
            _GroupShareathon.Userid = userId;
            _GroupShareathon.Timeintervalminutes = Timeintervalminutes;
            _GroupShareathon.FacebookStatus      = 0;
            _GroupShareathon.FacebookPageUrl     = FacebookUrl;
            _GroupShareathon.Facebookpageid      = pageid.TrimEnd(',');
            _GroupShareathon.Facebooknameid      = FacebookGroupId;
            groupids = FacebookGroupId.Split(',');
            foreach (var item in groupids)
            {
                string[] grpId = Regex.Split(item, "<:>");
                groupId   = grpId[1] + ',' + groupId;
                groupName = grpId[0] + ',' + groupName;
            }
            _GroupShareathon.Facebookgroupid    = groupId.TrimEnd(',');
            _GroupShareathon.Facebookgroupname  = groupName.TrimEnd(',');
            _GroupShareathon.Facebookaccountid  = _Facebookaccounts.FbUserId;
            _GroupShareathon.Facebookusername   = _Facebookaccounts.FbUserName;
            _GroupShareathon.AccessToken        = _Facebookaccounts.AccessToken;
            _GroupShareathon.Lastsharetimestamp = Helper.DateExtension.ConvertToUnixTimestamp(DateTime.UtcNow);
            MongoRepository _ShareathonRepository = new MongoRepository("GroupShareathon", _appSettings);

            profileids = pageid.TrimEnd(',').Split(',');
            groupids   = FacebookGroupId.TrimEnd(',').Split(',');
            string[] arrgroupids = groupId.Split(',');
            var      ret         = _ShareathonRepository.Find <Domain.Socioboard.Models.Mongo.GroupShareathon>(t => profileids.Contains(t.Facebookpageid) && t.Facebookaccountid == Facebookaccountid && t.Userid == userId && arrgroupids.Contains(t.Facebookgroupid));
            var      task        = Task.Run(async() =>
            {
                return(await ret);
            });
            int count = task.Result.Count;

            if (count > 0)
            {
                return("already added");
            }
            else
            {
                _ShareathonRepository.Add(_GroupShareathon);
                return("added successfully");
            }
        }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 7
0
        public static string FacebookComposeMessageRss(string message, string accessToken, string FbUserId, string title, string link, string rssFeedId)
        {
            string          ret         = "";
            FacebookClient  fb          = new FacebookClient();
            MongoRepository rssfeedRepo = new MongoRepository("RssFeed");

            try
            {
                var pageAccessToken = FacebookApiHelper.GetPageAccessToken(FbUserId, accessToken, string.Empty);
                if (string.IsNullOrEmpty(pageAccessToken))
                {
                    return(string.Empty);
                }
                FacebookApiHelper.PublishPostOnPage(pageAccessToken, FbUserId, message, string.Empty, link);

                #region Old Methods
                //fb.AccessToken = accessToken;
                //System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls;
                //var args = new Dictionary<string, object>();
                //if (message != null)
                //{
                //    args["message"] = message;
                //}

                //args["link"] = link;
                //ret = fb.Post("v2.7/" + FbUserId + "/feed", args).ToString();
                #endregion

                var builders = Builders <BsonDocument> .Filter;
                FilterDefinition <BsonDocument> filter = builders.Eq("strId", rssFeedId);
                var update = Builders <BsonDocument> .Update.Set("Status", true);

                rssfeedRepo.Update <Domain.Socioboard.Models.Mongo.RssFeed>(update, filter);
                Thread.Sleep(1000 * 600);
                return(ret = "Messages Posted Successfully");
            }
            catch (Exception ex)
            {
                if (ex.Message.Contains("Error validating access token: Session has expired on"))
                {
                    Model.DatabaseRepository dbr = new DatabaseRepository();
                    Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = dbr.Find <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == FbUserId).First();
                    _Facebookaccounts.IsActive = false;
                    dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(_Facebookaccounts);
                }
                Console.WriteLine(ex.Message);
                apiHitsCount = MaxapiHitsCount;
                return(ret = "");
            }
        }
        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 = Repositories.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);
            MongoRepository _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 && t.FacebookStatus == 1);
            var             task = Task.Run(async() =>
            {
                return(await ret);
            });
            int count = task.Result.Count;

            if (count > 0)
            {
                return("already added");
            }
            else
            {
                _ShareathonRepository.Add(_Shareathon);
                return("added successfully");
            }
        }
Ejemplo n.º 9
0
        public static int updateFacebookPageFeeds(Domain.Socioboard.Models.Facebookaccounts fbAcc)
        {
            apiHitsCount = 0;
            Model.DatabaseRepository dbr = new DatabaseRepository();

            if (fbAcc.LastUpdate.AddHours(1) <= DateTime.UtcNow)
            {
                if (fbAcc.IsAccessTokenActive)
                {
                    dynamic profile = Fbpages.getFbPageData(fbAcc.AccessToken);
                    apiHitsCount++;
                    if (Convert.ToString(profile) != "Invalid Access Token")
                    {
                        try
                        {
                            fbAcc.Friends = (Convert.ToInt64(profile["fan_count"]));
                        }
                        catch (Exception)
                        {
                            fbAcc.Friends = fbAcc.Friends;
                        }

                        try
                        {
                            dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(fbAcc);
                        }
                        catch { }
                        while (apiHitsCount < MaxapiHitsCount)
                        {
                            SaveFacebookFeeds(fbAcc.AccessToken, fbAcc.FbUserId, fbAcc.FbUserName);
                            SavePageConversations(fbAcc.AccessToken, fbAcc.FbUserId);
                            SaveFacebookPageFeed(fbAcc.AccessToken, fbAcc.FbUserId, fbAcc.FbUserName);
                            // SavePageNotification(fbAcc.AccessToken, fbAcc.FbUserId);
                        }
                    }
                }
            }
            else
            {
                apiHitsCount = 0;
            }
            return(0);
        }
Ejemplo n.º 10
0
        private static void daywiseSchedulemessages(object o)
        {
            try
            {
                Console.WriteLine(Thread.CurrentThread.Name + " Is Entered in Method");
                object[] arr = o as object[];
                Model.DatabaseRepository dbr = (Model.DatabaseRepository)arr[0];
                IGrouping <string, Domain.Socioboard.Models.DaywiseSchedule> items = (IGrouping <string, Domain.Socioboard.Models.DaywiseSchedule>)arr[1];
                Domain.Socioboard.Models.Facebookaccounts _facebook = dbr.Find <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == items.Key && t.IsActive).FirstOrDefault();
                Domain.Socioboard.Models.User             _user     = dbr.Single <Domain.Socioboard.Models.User>(t => t.Id == _facebook.UserId);
                if (_facebook != null)
                {
                    foreach (var item in items)
                    {
                        try
                        {
                            Console.WriteLine(item.socialprofileName + "Scheduling Started");
                            FacebookScheduler.PostDaywiseFacebookMessage(item, _facebook, _user);
                            Console.WriteLine(item.socialprofileName + "Scheduling");
                        }
                        catch (Exception)
                        {
                        }

                        item.scheduleTime = DateTime.UtcNow;
                        dbr.Update <Domain.Socioboard.Models.DaywiseSchedule>(item);
                    }
                    //_facebook.SchedulerUpdate = DateTime.UtcNow;

                    //dbr.Update<Domain.Socioboard.Models.Facebookaccounts>(_facebook);
                }
            }
            catch (Exception ex)
            {
                //  Thread.Sleep(60000);
            }
            finally
            {
                noOfthreadRunning--;
                objSemaphore.Release();
                Console.WriteLine(Thread.CurrentThread.Name + " Is Released");
            }
        }
        public void ScheduleFacebookMessage()
        {
            while (true)
            {
                try
                {
                    DatabaseRepository dbr = new DatabaseRepository();
                    List <Domain.Socioboard.Models.ScheduledMessage> lstScheduledMessage = dbr.Find <Domain.Socioboard.Models.ScheduledMessage>(t => t.status == Domain.Socioboard.Enum.ScheduleStatus.Pending && (t.profileType == Domain.Socioboard.Enum.SocialProfileType.Facebook || t.profileType == Domain.Socioboard.Enum.SocialProfileType.FacebookFanPage) && t.scheduleTime <= DateTime.UtcNow).ToList();
                    var newlstScheduledMessage = lstScheduledMessage.GroupBy(t => t.profileId).ToList();

                    foreach (var items in newlstScheduledMessage)
                    {
                        try
                        {
                            Domain.Socioboard.Models.Facebookaccounts _facebook = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == items.Key && t.IsAccessTokenActive);
                            if (_facebook != null)
                            {
                                foreach (var item in items)
                                {
                                    Console.WriteLine(item.socialprofileName + "Scheduling Started");
                                    FacebookScheduler.PostFacebookMessage(item, _facebook);
                                    Console.WriteLine(item.socialprofileName + "Scheduling");
                                }
                                _facebook.SchedulerUpdate = DateTime.UtcNow;
                                dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(_facebook);
                            }
                        }
                        catch (Exception ex)
                        {
                            //  Thread.Sleep(60000);
                        }
                    }
                    Thread.Sleep(TimeSpan.FromMinutes(1));
                }
                catch (Exception ex)
                {
                    Console.WriteLine("issue in web api calling" + ex.StackTrace);
                    Thread.Sleep(TimeSpan.FromMinutes(1));
                }
            }
        }
Ejemplo n.º 12
0
        public void ShceduleConetentStudioFeeds(object o)
        {
            MongoRepository mongorepo = new Helper.MongoRepository("ContentFeedsShareathon");
            int             pageapiHitsCount;

            object[] arr = o as object[];
            ContentStudioShareathonIdData shareathon = (ContentStudioShareathonIdData)arr[0];

            Model.DatabaseRepository dbr = (Model.DatabaseRepository)arr[1];
            MongoRepository          _ShareathonRepository = (MongoRepository)arr[2];

            string[] ids = shareathon.FbPageId.Split(',');
            foreach (string id in ids)
            {
                try
                {
                    pageapiHitsCount = 0;
                    //  List<ContentFeedsShareathon> lstcontent = new List<ContentFeedsShareathon>();



                    Domain.Socioboard.Models.Facebookaccounts lstFbAcc     = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == id);
                    Domain.Socioboard.Models.Facebookaccounts fbAcc        = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.UserId == lstFbAcc.UserId);
                    Domain.Socioboard.Models.Facebookaccounts facebookPage = null;

                    MongoRepository mongoshare = new Helper.MongoRepository("ContentFeedsShareathon");



                    if (lstFbAcc != null)
                    {
                        facebookPage = lstFbAcc;
                    }
                    if (facebookPage != null)
                    {
                        if (pageapiHitsCount < pageMaxapiHitsCount)
                        {
                            //  var lstcontent = mongorepo.Find<ContentFeedsShareathon>(t => t.FbPageId == id && t.UserId == fbAcc.UserId && t.status == 0);
                            var resultshare = mongorepo.Find <ContentFeedsShareathon>(t => t.FbPageId == shareathon.FbPageId && t.Status == false);
                            var task        = Task.Run(async() =>
                            {
                                return(await resultshare);
                            });
                            int count     = task.Result.Count;
                            var feedsData = task.Result.ToList();

                            if (facebookPage.contenetShareathonUpdate.AddHours(1) <= DateTime.UtcNow)
                            {
                                if (count != 0)
                                {
                                    pageapiHitsCount++;
                                    //!shareathon.FbPageId.Equals(obj.FbPageId) && !shareathon.postId.Equals(obj.postId)
                                    foreach (var obj in feedsData)
                                    {
                                        try
                                        {
                                            DateTime dt = SBHelper.ConvertFromUnixTimestamp(obj.lastsharestamp);
                                            dt = dt.AddMinutes(obj.Timeintervalminutes);
                                            if ((obj.Status == false && SBHelper.ConvertToUnixTimestamp(dt) <= SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow)))
                                            {
                                                string ret = Helper.FBPostContentFeeds.FacebookComposeMessageRss(obj.title, facebookPage.AccessToken, facebookPage.FbUserId, "", obj.postUrl, obj.postId);
                                                if (ret == "Messages Posted Successfully")
                                                {
                                                    obj.Status        = true;
                                                    shareathon.Status = true;


                                                    FilterDefinition <BsonDocument> filter = new BsonDocument("strId", obj.strId);
                                                    var update = Builders <BsonDocument> .Update.Set("Status", true);

                                                    mongorepo.Update <Domain.Socioboard.Models.Mongo.ContentFeedsShareathon>(update, filter);

                                                    FilterDefinition <BsonDocument> filterId = new BsonDocument("strId", shareathon.strId);
                                                    var updateId = Builders <BsonDocument> .Update.Set("Status", true);

                                                    mongorepo.Update <Domain.Socioboard.Models.Mongo.ContentStudioShareathonIdData>(updateId, filterId);
                                                }

                                                if (!string.IsNullOrEmpty(ret))
                                                {
                                                    Thread.Sleep(1000 * 60 * shareathon.Timeintervalminutes);
                                                }
                                            }
                                        }
                                        catch
                                        {
                                            pageapiHitsCount = pageMaxapiHitsCount;
                                        }
                                    }
                                    fbAcc.contenetShareathonUpdate        = DateTime.UtcNow;
                                    facebookPage.contenetShareathonUpdate = DateTime.UtcNow;
                                    dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(fbAcc);
                                    dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(facebookPage);
                                }
                                else
                                {
                                    FilterDefinition <BsonDocument> filter = new BsonDocument("strId", shareathon.strId);
                                    var update = Builders <BsonDocument> .Update.Set("Status", false);

                                    _ShareathonRepository.Update <Domain.Socioboard.Models.Mongo.ContentFeedsShareathon>(update, filter);
                                }
                            }
                            else
                            {
                                pageapiHitsCount = 0;
                            }
                        }
                    }
                }
                catch
                {
                    pageapiHitsCount = pageMaxapiHitsCount;
                }
            }
        }
        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"));
                }
            }
        }
Ejemplo n.º 14
0
        public static string postRssFeeds(Domain.Socioboard.Models.Mongo.Rss _rss)
        {
            MongoRepository    mongorepo = new MongoRepository("RssFeed");
            DatabaseRepository dbr       = new DatabaseRepository();
            List <Domain.Socioboard.Models.Mongo.RssFeed> objrssdata = new List <Domain.Socioboard.Models.Mongo.RssFeed>();
            var ret  = mongorepo.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.ProfileId == _rss.ProfileId && t.Status == false);
            var task = Task.Run(async() =>
            {
                return(await ret);
            });
            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
                    {
                        if (item.Status == false)
                        {
                            Domain.Socioboard.Models.Facebookaccounts lstFbAcc = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId.Equals(item.ProfileId));
                            // Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = Repositories.FacebookRepository.getFacebookAccount(item.ProfileId, _redisCache, dbr);
                            string msg = FacebookComposeMessageRss(item.Message, lstFbAcc.AccessToken, lstFbAcc.FbUserId, item.Title, item.Link, item.strId);

                            var builders = Builders <BsonDocument> .Filter;
                            FilterDefinition <BsonDocument> filter = builders.Eq("strId", item.strId);
                            var update = Builders <BsonDocument> .Update.Set("Status", true);

                            mongorepo.Update <Domain.Socioboard.Models.Mongo.RssFeed>(update, filter);
                            var resu  = mongorepo.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.strId == item.strId);
                            var tasks = Task.Run(async() =>
                            {
                                return(await resu);
                            });
                            IList <Domain.Socioboard.Models.Mongo.RssFeed> _rssdata = tasks.Result;
                            Console.WriteLine("rss Data");
                            Console.WriteLine(_rssdata);
                        }
                    }
                    catch (Exception ex)
                    {
                        return("");
                    }
                    Thread.Sleep(20 * 1000); // for 10 min stop
                }
                //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);
                //      TwitterComposeMessageRss(message, _TwitterAccount.oAuthToken, _TwitterAccount.oAuthSecret, _TwitterAccount.twitterUserId, _TwitterAccount.twitterScreenName, item.strId);

                //    }
                //    catch (Exception ex)
                //    {
                //        return "";
                //    }
                //    Thread.Sleep(10 * 000);
                //}
            }
            return("");
            //  string facebookdata = FacebookComposeMessageRss(objRssFeeds.Message, _Facebookaccounts.AccessToken, _Facebookaccounts.FbUserId, objRssFeeds.Title, objRssFeeds.Link, objRssFeeds.strId);
        }
Ejemplo n.º 15
0
        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("");
                        }
                        Thread.Sleep(600000);
                    }
                    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("");
                        }
                        Thread.Sleep(600000);
                    }
                }
                return(ret);
            }
            return(ret);
        }
Ejemplo n.º 16
0
        public int updateFacebookFeeds(Domain.Socioboard.Models.Facebookaccounts fbAcc)
        {
            apiHitsCount = 0;
            Model.DatabaseRepository dbr = new DatabaseRepository();
            if (fbAcc.LastUpdate.AddHours(1) <= DateTime.UtcNow)
            {
                if (fbAcc.IsAccessTokenActive)
                {
                    dynamic feeds   = Socioboard.Facebook.Data.FbUser.getFeeds(fbAcc.AccessToken);
                    dynamic profile = Socioboard.Facebook.Data.FbUser.getFbUser(fbAcc.AccessToken);
                    apiHitsCount++;
                    if (Convert.ToString(profile) != "Invalid Access Token")
                    {
                        fbAcc.Friends = Socioboard.Facebook.Data.FbUser.getFbFriends(fbAcc.AccessToken);
                        apiHitsCount++;
                        try
                        {
                            fbAcc.EmailId = (Convert.ToString(profile["email"]));
                        }
                        catch
                        {
                            fbAcc.EmailId = fbAcc.EmailId;
                        }
                        try
                        {
                            fbAcc.ProfileUrl = (Convert.ToString(profile["link"]));
                        }
                        catch
                        {
                            fbAcc.ProfileUrl = fbAcc.ProfileUrl;
                        }
                        try
                        {
                            fbAcc.gender = (Convert.ToString(profile["gender"]));
                        }
                        catch
                        {
                            fbAcc.gender = fbAcc.gender;
                        }
                        try
                        {
                            fbAcc.bio = (Convert.ToString(profile["bio"]));
                        }
                        catch
                        {
                            fbAcc.bio = fbAcc.bio;
                        }
                        try
                        {
                            fbAcc.about = (Convert.ToString(profile["about"]));
                        }
                        catch
                        {
                            fbAcc.about = fbAcc.about;
                        }
                        try
                        {
                            fbAcc.coverPic = (Convert.ToString(profile["cover"]["source"]));
                        }
                        catch
                        {
                            fbAcc.coverPic = fbAcc.coverPic;
                        }
                        try
                        {
                            fbAcc.birthday = (Convert.ToString(profile["birthday"]));
                        }
                        catch
                        {
                            fbAcc.birthday = fbAcc.birthday;
                        }
                        try
                        {
                            JArray arry = JArray.Parse(profile["education"]);
                            if (arry.Count > 0)
                            {
                                fbAcc.college   = Convert.ToString(arry[arry.Count - 1]["school"]["name"]);
                                fbAcc.education = Convert.ToString(arry[arry.Count - 1]["concentration"]["name"]);
                            }
                        }
                        catch
                        {
                            fbAcc.college   = fbAcc.college;
                            fbAcc.education = fbAcc.education;
                        }
                        try
                        {
                            JArray arry = JArray.Parse(profile["work"]);
                            if (arry.Count > 0)
                            {
                                fbAcc.workPosition = Convert.ToString(arry[0]["position"]["name"]);
                                fbAcc.workCompany  = Convert.ToString(arry[0]["employer"]["name"]);
                            }
                        }
                        catch
                        {
                            fbAcc.workPosition = fbAcc.workPosition;
                            fbAcc.workCompany  = fbAcc.workCompany;
                        }

                        try
                        {
                            dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(fbAcc);
                        }
                        catch { }

                        while (apiHitsCount < MaxapiHitsCount && feeds != null && feeds["data"] != null)
                        {
                            apiHitsCount++;
                            if (feeds["data"] != null)
                            {
                                Console.WriteLine(feeds["data"]);
                                foreach (var result in feeds["data"])
                                {
                                    MongoFacebookFeed objFacebookFeed = new MongoFacebookFeed();
                                    objFacebookFeed.Type      = "fb_feed";
                                    objFacebookFeed.ProfileId = fbAcc.FbUserId;
                                    objFacebookFeed.Id        = MongoDB.Bson.ObjectId.GenerateNewId();
                                    try
                                    {
                                        objFacebookFeed.FromProfileUrl = "http://graph.facebook.com/" + result["from"]["id"] + "/picture?type=small";
                                    }
                                    catch (Exception)
                                    {
                                        objFacebookFeed.FromProfileUrl = "http://graph.facebook.com/" + fbAcc.FbUserId + "/picture?type=small";
                                    }
                                    try
                                    {
                                        objFacebookFeed.FromName = result["from"]["name"].ToString();
                                    }
                                    catch (Exception)
                                    {
                                        objFacebookFeed.FromName = fbAcc.FbUserName;
                                    }
                                    try
                                    {
                                        objFacebookFeed.FromId = result["from"]["id"].ToString();
                                    }
                                    catch (Exception)
                                    {
                                        objFacebookFeed.FromId = fbAcc.FbUserId;
                                    }
                                    objFacebookFeed.FeedId   = result["id"].ToString();
                                    objFacebookFeed.FeedDate = DateTime.Parse(result["created_time"].ToString()).ToString("yyyy/MM/dd HH:mm:ss");
                                    try
                                    {
                                        objFacebookFeed.FbComment = "http://graph.facebook.com/" + result["id"] + "/comments";
                                        objFacebookFeed.FbLike    = "http://graph.facebook.com/" + result["id"] + "/likes";
                                    }
                                    catch (Exception)
                                    {
                                    }
                                    try
                                    {
                                        objFacebookFeed.Likecount = result["likes"]["summary"]["total_count"].ToString();
                                    }
                                    catch (Exception ex)
                                    {
                                    }
                                    try
                                    {
                                        objFacebookFeed.Commentcount = result["comments"]["summary"]["total_count"].ToString();
                                    }
                                    catch (Exception ex)
                                    {
                                    }
                                    try
                                    {
                                        objFacebookFeed.postType = result["type"].ToString();
                                    }
                                    catch
                                    {
                                        objFacebookFeed.postType = "status";
                                    }
                                    try
                                    {
                                        objFacebookFeed.postingFrom = result["application"]["name"].ToString();
                                    }
                                    catch
                                    {
                                        objFacebookFeed.postingFrom = "Facebook";
                                    }
                                    try
                                    {
                                        objFacebookFeed.Picture = result["picture"].ToString();
                                    }
                                    catch (Exception ex)
                                    {
                                        objFacebookFeed.Picture = "";
                                    }

                                    string message = string.Empty;

                                    try
                                    {
                                        if (result["message"] != null)
                                        {
                                            message = result["message"];
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        try
                                        {
                                            if (result["description"] != null)
                                            {
                                                message = result["description"];
                                            }
                                        }
                                        catch (Exception exx)
                                        {
                                            try
                                            {
                                                if (result["story"] != null)
                                                {
                                                    message = result["story"];
                                                }
                                            }
                                            catch (Exception exxx)
                                            {
                                                message = string.Empty;
                                            }
                                        }
                                    }

                                    if (message == null)
                                    {
                                        message = "";
                                    }
                                    objFacebookFeed.FeedDescription  = message;
                                    objFacebookFeed.EntryDate        = DateTime.UtcNow.ToString("yyyy/MM/dd HH:mm:ss");
                                    objFacebookFeed._facebookComment = FbPostComments(objFacebookFeed.FeedId, fbAcc.AccessToken);


                                    try
                                    {
                                        MongoRepository mongorepo = new MongoRepository("MongoFacebookFeed");
                                        var             ret       = mongorepo.Find <MongoFacebookFeed>(t => t.FeedId == objFacebookFeed.FeedId && t.ProfileId == objFacebookFeed.ProfileId);
                                        var             task      = Task.Run(async() =>
                                        {
                                            return(await ret);
                                        });
                                        int count = task.Result.Count;
                                        if (count < 1)
                                        {
                                            mongorepo.Add <MongoFacebookFeed>(objFacebookFeed);
                                        }
                                        else
                                        {
                                            try
                                            {
                                                FilterDefinition <BsonDocument> filter = new BsonDocument("FeedId", objFacebookFeed.FeedId);
                                                var update = Builders <BsonDocument> .Update.Set("postType", objFacebookFeed.postType).Set("postingFrom", objFacebookFeed.postingFrom).Set("Likecount", objFacebookFeed.Likecount).Set("Commentcount", objFacebookFeed.Commentcount);

                                                mongorepo.Update <MongoFacebookFeed>(update, filter);
                                            }
                                            catch { }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        //_logger.LogInformation(ex.Message);
                                        //_logger.LogError(ex.StackTrace);
                                    }
                                    if (apiHitsCount < MaxapiHitsCount)
                                    {
                                        //AddFbPostComments(objFacebookFeed.FeedId, fbAcc.AccessToken);
                                    }
                                }
                            }
                            else
                            {
                                apiHitsCount = MaxapiHitsCount;
                            }
                            try
                            {
                                feeds = Socioboard.Facebook.Data.FbUser.fbGet(fbAcc.AccessToken, feeds["paging"]["next"]);
                            }
                            catch
                            {
                                apiHitsCount = MaxapiHitsCount;
                            }
                        }

                        fbAcc.LastUpdate = DateTime.UtcNow;

                        dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(fbAcc);
                    }
                }
            }
            else
            {
                apiHitsCount = 0;
            }
            return(0);
        }
        public void groupshreathon(object o)
        {
            try
            {
                object[]                 arr                   = o as object[];
                GroupShareathon          shareathon            = (GroupShareathon)arr[0];
                Model.DatabaseRepository dbr                   = (Model.DatabaseRepository)arr[1];
                MongoRepository          _ShareathonRepository = (MongoRepository)arr[2];
                string[]                 ids                   = shareathon.Facebookpageid.Split(',');
                foreach (string id in ids)
                {
                    try
                    {
                        int groupapiHitsCountNew = 0;
                        Domain.Socioboard.Models.Facebookaccounts fbAcc        = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == shareathon.Facebookaccountid);
                        Domain.Socioboard.Models.Facebookaccounts facebookPage = null;
                        Domain.Socioboard.Models.Facebookaccounts lstFbAcc     = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == id);

                        if (fbAcc != null)
                        {
                            if (groupapiHitsCountNew < groupMaxapiHitsCount)
                            {
                                string feeds = string.Empty;
                                if (fbAcc.GroupShareathonUpdate.AddHours(1) <= DateTime.UtcNow)
                                {
                                    feeds = Socioboard.Facebook.Data.Fbpages.getFacebookRecentPost(fbAcc.AccessToken, id);
                                    string feedId = string.Empty;
                                    if (!string.IsNullOrEmpty(feeds) && !feeds.Equals("[]"))
                                    {
                                        groupapiHitsCountNew++;
                                        JObject fbpageNotes = JObject.Parse(feeds);
                                        foreach (JObject obj in JArray.Parse(fbpageNotes["data"].ToString()))
                                        {
                                            try
                                            {
                                                string feedid = obj["id"].ToString();
                                                feedid = feedid.Split('_')[1];
                                                feedId = feedid + "," + feedId;
                                            }
                                            catch { }
                                        }
                                        try
                                        {
                                            DateTime dt = SBHelper.ConvertFromUnixTimestamp(shareathon.Lastsharetimestamp);
                                            dt = dt.AddMinutes(shareathon.Timeintervalminutes);
                                            if (shareathon.Lastpostid == null || (!shareathon.Lastpostid.Equals(feedId) && SBHelper.ConvertToUnixTimestamp(dt) <= SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow)))
                                            {
                                                ShareFeedonGroup(fbAcc.AccessToken, feedId, id, "", shareathon.Facebookgroupid, shareathon.Timeintervalminutes, shareathon.Facebookaccountid, shareathon.Lastsharetimestamp, shareathon.Facebooknameid);
                                            }
                                            fbAcc.GroupShareathonUpdate = DateTime.UtcNow;
                                            dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(fbAcc);
                                        }
                                        catch (Exception ex)
                                        {
                                        }
                                    }
                                    else
                                    {
                                        FilterDefinition <BsonDocument> filter = new BsonDocument("strId", shareathon.strId);
                                        var update = Builders <BsonDocument> .Update.Set("FacebookStatus", 1);

                                        _ShareathonRepository.Update <Domain.Socioboard.Models.Mongo.GroupShareathon>(update, filter);
                                        groupapiHitsCount = groupMaxapiHitsCount;
                                    }
                                }
                                else
                                {
                                    groupapiHitsCount = 0;
                                }
                            }
                        }
                    }

                    catch
                    {
                        groupapiHitsCount = groupMaxapiHitsCount;
                    }
                }
            }
            catch (Exception e)
            {
                groupapiHitsCount = groupMaxapiHitsCount;
            }
            finally
            {
                noOfthread_groupshreathonRunning--;
            }
        }
        public void pageshreathon(object o)
        {
            try
            {
                object[]                 arr                   = o as object[];
                PageShareathon           shareathon            = (PageShareathon)arr[0];
                Model.DatabaseRepository dbr                   = (Model.DatabaseRepository)arr[1];
                MongoRepository          _ShareathonRepository = (MongoRepository)arr[2];
                string[]                 ids                   = shareathon.Facebookpageid.Split(',');
                foreach (string id in ids)
                {
                    try
                    {
                        pageapiHitsCount = 0;
                        Domain.Socioboard.Models.Facebookaccounts fbAcc        = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == shareathon.Facebookaccountid);
                        Domain.Socioboard.Models.Facebookaccounts facebookPage = null;
                        Domain.Socioboard.Models.Facebookaccounts lstFbAcc     = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == id);
                        if (lstFbAcc != null)
                        {
                            facebookPage = lstFbAcc;
                        }
                        if (facebookPage != null)
                        {
                            if (pageapiHitsCount < pageMaxapiHitsCount)
                            {
                                string feeds = string.Empty;
                                if (facebookPage.PageShareathonUpdate.AddHours(1) <= DateTime.UtcNow)
                                {
                                    feeds = Socioboard.Facebook.Data.Fbpages.getFacebookRecentPost(fbAcc.AccessToken, facebookPage.FbUserId);
                                    string feedId = string.Empty;
                                    if (!string.IsNullOrEmpty(feeds) && !feeds.Equals("[]"))
                                    {
                                        pageapiHitsCount++;
                                        JObject fbpageNotes = JObject.Parse(feeds);
                                        foreach (JObject obj in JArray.Parse(fbpageNotes["data"].ToString()))
                                        {
                                            try
                                            {
                                                feedId = obj["id"].ToString();
                                                feedId = feedId.Split('_')[1];
                                                DateTime dt = SBHelper.ConvertFromUnixTimestamp(shareathon.Lastsharetimestamp);
                                                dt = dt.AddMinutes(shareathon.Timeintervalminutes);
                                                if ((!shareathon.Lastpostid.Equals(feedId) && SBHelper.ConvertToUnixTimestamp(dt) <= SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow)))
                                                {
                                                    string ret = ShareFeed(fbAcc.AccessToken, feedId, facebookPage.FbUserId, "", fbAcc.FbUserId, facebookPage.FbUserName);
                                                    if (!string.IsNullOrEmpty(ret))
                                                    {
                                                        Thread.Sleep(1000 * 60 * shareathon.Timeintervalminutes);
                                                    }
                                                }
                                            }
                                            catch
                                            {
                                                pageapiHitsCount = pageMaxapiHitsCount;
                                            }
                                        }
                                        fbAcc.PageShareathonUpdate        = DateTime.UtcNow;
                                        facebookPage.PageShareathonUpdate = DateTime.UtcNow;
                                        dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(fbAcc);
                                        dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(facebookPage);
                                    }
                                    else
                                    {
                                        FilterDefinition <BsonDocument> filter = new BsonDocument("strId", shareathon.strId);
                                        var update = Builders <BsonDocument> .Update.Set("FacebookStatus", 1);

                                        _ShareathonRepository.Update <Domain.Socioboard.Models.Mongo.PageShareathon>(update, filter);
                                    }
                                }
                                else
                                {
                                    pageapiHitsCount = 0;
                                }
                            }
                        }
                    }

                    catch
                    {
                        pageapiHitsCount = pageMaxapiHitsCount;
                    }
                }
            }
            catch (Exception e)
            {
                pageapiHitsCount = pageMaxapiHitsCount;
            }
            finally
            {
                noOfthread_pageshreathonRunning--;
            }
        }
Ejemplo n.º 19
0
        public static void CreateReports(string ProfileId, string AccessToken, bool is90daysupdated, long userId)
        {
            int day = 1;

            if (!is90daysupdated)
            {
                day = 90;
            }

            double  since         = SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow.AddDays(-day));
            double  until         = SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow);
            JObject pageobj       = new JObject();
            JArray  likesobj      = new JArray();
            JArray  unlikesobj    = new JArray();
            JArray  impressionobj = new JArray();
            JArray  uniqueobj     = new JArray();
            JArray  facebookstory_typeUrlobj90 = new JArray();
            JArray  facebookorganicobj90       = new JArray();
            JArray  facebookviralobj90         = new JArray();
            JArray  facebookpaidobj90          = new JArray();
            JArray  facebookimpressionbyageobj = new JArray();
            JArray  facebookstoriesobj         = new JArray();
            JArray  facebooksharing_typeUrlobj = new JArray();
            JArray  facebookagegenderUrlobj    = new JArray();
            JObject jounlikes                    = new JObject();
            JObject joimpressionobj              = new JObject();
            JObject jouniqueobj                  = new JObject();
            JObject jofacebookstory_typeUrlobj   = new JObject();
            JObject jofacebookorganicobj         = new JObject();
            JObject jofacebookviralobj           = new JObject();
            JObject jofacebookpaidobj            = new JObject();
            JObject jofacebookimpressionbyageobj = new JObject();
            JObject jofacebookstoriesobj         = new JObject();
            JObject jofacebooksharing_typeUrlobj = new JObject();
            JObject jofacebookagegenderUrlobj    = new JObject();

            MongoRepository mongorepofb = new MongoRepository("FacebookPasswordChangeUserDetail");

            string errormsg     = null;
            string ispasschange = null;
            string msg          = null;


            #region likes
            try
            {
                string facebookpageUrl   = "https://graph.facebook.com/v2.7/" + ProfileId + "?fields=fan_count,name,talking_about_count&access_token=" + AccessToken;
                string outputfacepageUrl = getFacebookResponse(facebookpageUrl);
                pageobj = JObject.Parse(outputfacepageUrl);
            }
            catch (Exception ex)
            {
            }

            try
            {
                string facebooknewfanUrl = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_fan_adds?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken;
                string outputface        = getFacebookResponse(facebooknewfanUrl);
                ispasschange = outputface;
                likesobj     = JArray.Parse(JArray.Parse(JObject.Parse(outputface)["data"].ToString())[0]["values"].ToString());
            }
            catch (Exception ex)
            {
                errormsg = ispasschange;
                msg      = getBetween(errormsg, "e\":\"", ":");
            }
            #endregion
            #region unlikes
            try
            {
                string facebookunlikjeUrl = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_fan_removes?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken;
                string outputfaceunlike   = getFacebookResponse(facebookunlikjeUrl);
                ispasschange = outputfaceunlike;
                unlikesobj   = JArray.Parse(JArray.Parse(JObject.Parse(outputfaceunlike)["data"].ToString())[0]["values"].ToString());
            }
            catch (Exception ex)
            {
                errormsg = ispasschange;
            }
            #endregion
            #region impression
            try
            {
                string facebookimpressionUrl  = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_impressions?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken;
                string outputfaceunimpression = getFacebookResponse(facebookimpressionUrl);
                impressionobj = JArray.Parse(JArray.Parse(JObject.Parse(outputfaceunimpression)["data"].ToString())[0]["values"].ToString());
            }
            catch (Exception ex)
            {
            }
            #endregion
            #region impression user
            try
            {
                string facebookuniqueUrl  = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_impressions_unique?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken;
                string outputfaceununoque = getFacebookResponse(facebookuniqueUrl);
                uniqueobj = JArray.Parse(JArray.Parse(JObject.Parse(outputfaceununoque)["data"].ToString())[0]["values"].ToString());
            }
            catch (Exception ex)
            {
            }
            #endregion
            #region impression breakdown
            try
            {
                string facebookstory_typeUrl90  = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_impressions_by_story_type?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken;
                string outputfaceunstory_type90 = getFacebookResponse(facebookstory_typeUrl90);
                facebookstory_typeUrlobj90 = JArray.Parse(JArray.Parse(JObject.Parse(outputfaceunstory_type90)["data"].ToString())[0]["values"].ToString());
            }
            catch (Exception ex)
            {
            }
            #endregion
            #region impression breakdown organic
            try
            {
                string facebookorganic90   = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_impressions_organic?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken;
                string outputfaceorganic90 = getFacebookResponse(facebookorganic90);
                facebookorganicobj90 = JArray.Parse(JArray.Parse(JObject.Parse(outputfaceorganic90)["data"].ToString())[0]["values"].ToString());
            }
            catch (Exception ex)
            {
            }
            #endregion
            #region imression breakdowm viral
            try
            {
                string facebookviral90   = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_impressions_viral?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken;
                string outputfaceviral90 = getFacebookResponse(facebookviral90);
                facebookviralobj90 = JArray.Parse(JArray.Parse(JObject.Parse(outputfaceviral90)["data"].ToString())[0]["values"].ToString());
            }
            catch (Exception ex)
            {
            }
            #endregion
            #region impression breakdown paid
            try
            {
                string facebookpaid90   = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_impressions_paid?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken;
                string outputfacepaid90 = getFacebookResponse(facebookpaid90);
                facebookpaidobj90 = JArray.Parse(JArray.Parse(JObject.Parse(outputfacepaid90)["data"].ToString())[0]["values"].ToString());
            }
            catch (Exception ex)
            {
            }
            #endregion
            #region page imression by age and gender
            try
            {
                string facebookimpressionbyage   = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_impressions_by_age_gender_unique?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken;
                string outputfaceimpressionbyage = getFacebookResponse(facebookimpressionbyage);
                facebookimpressionbyageobj = JArray.Parse(JArray.Parse(JObject.Parse(outputfaceimpressionbyage)["data"].ToString())[0]["values"].ToString());
            }
            catch (Exception ex)
            {
            }
            #endregion
            #region story sharing
            try
            {
                string facebookstories   = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_stories?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken;
                string outputfacestories = getFacebookResponse(facebookstories);
                facebookstoriesobj = JArray.Parse(JArray.Parse(JObject.Parse(outputfacestories)["data"].ToString())[0]["values"].ToString());
            }
            catch (Exception ex)
            {
            }
            #endregion
            #region sroty sharing by share type
            try
            {
                string facebooksharing_typeUrl  = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_stories_by_story_type?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken;
                string outputfaceunsharing_type = getFacebookResponse(facebooksharing_typeUrl);
                facebooksharing_typeUrlobj = JArray.Parse(JArray.Parse(JObject.Parse(outputfaceunsharing_type)["data"].ToString())[0]["values"].ToString());
            }
            catch (Exception ex)
            {
            }
            #endregion
            #region story sharing by age and gender
            try
            {
                string facebooksharingagegenderUrl = "https://graph.facebook.com/v2.7/" + ProfileId + "/insights/page_storytellers_by_age_gender?pretty=0&since=" + since.ToString() + "&suppress_http_code=1&until=" + until.ToString() + "&access_token=" + AccessToken;
                string outputfaceunagegender       = getFacebookResponse(facebooksharingagegenderUrl);
                facebookagegenderUrlobj = JArray.Parse(JArray.Parse(JObject.Parse(outputfaceunagegender)["data"].ToString())[0]["values"].ToString());
            }
            catch (Exception ex)
            {
            }
            try
            {
                if (msg == "Error validating access token")
                {
                    DatabaseRepository dbr = new DatabaseRepository();
                    Domain.Socioboard.Models.Facebookaccounts lstFbAcc = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == ProfileId);
                    Domain.Socioboard.Models.User             lstUser  = dbr.Single <Domain.Socioboard.Models.User>(t => t.Id == lstFbAcc.UserId);
                    Domain.Socioboard.Models.Mongo.FacebookPasswordChangeUserDetail fbdetailpass = new Domain.Socioboard.Models.Mongo.FacebookPasswordChangeUserDetail();
                    fbdetailpass.Id        = ObjectId.GenerateNewId();
                    fbdetailpass.strId     = ObjectId.GenerateNewId().ToString();
                    fbdetailpass.userId    = userId;
                    fbdetailpass.profileId = ProfileId;
                    fbdetailpass.message   = msg;
                    fbdetailpass.FbEmail   = lstUser.EmailId;
                    fbdetailpass.dateValue = DateTime.Today.ToString();
                    fbdetailpass.status    = false;

                    try
                    {
                        MongoRepository mongorepo = new MongoRepository("FacebookPasswordChangeUserDetail");
                        var             ret       = mongorepo.Find <Domain.Socioboard.Models.Mongo.FacebookPasswordChangeUserDetail>(t => t.profileId == fbdetailpass.profileId);
                        var             task      = Task.Run(async() =>
                        {
                            return(await ret);
                        });
                        if (task.Result != null)
                        {
                            if (task.Result.Count() < 1)
                            {
                                mongorepo.Add <Domain.Socioboard.Models.Mongo.FacebookPasswordChangeUserDetail>(fbdetailpass);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                }
            }
            catch (Exception ex)
            {
            }


            #endregion
            foreach (JObject obj in likesobj)
            {
                Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports facebookReportViewModal = new Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports();
                string key = obj["end_time"].ToString();
                try
                {
                    jounlikes = unlikesobj.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key);
                }
                catch (Exception ex)
                {
                }
                try
                {
                    joimpressionobj = impressionobj.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key);
                }
                catch (Exception ex)
                {
                }
                try
                {
                    jouniqueobj = uniqueobj.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key);
                }
                catch (Exception ex)
                {
                }
                try
                {
                    jofacebookstory_typeUrlobj = facebookstory_typeUrlobj90.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key);
                }
                catch (Exception ex)
                {
                }
                try
                {
                    jofacebookorganicobj = facebookorganicobj90.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key);
                }
                catch (Exception ex)
                {
                }
                try
                {
                    jofacebookviralobj = facebookviralobj90.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key);
                }
                catch (Exception ex)
                {
                }
                try
                {
                    jofacebookpaidobj = facebookpaidobj90.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key);
                }
                catch (Exception ex)
                {
                }
                try
                {
                    jofacebookimpressionbyageobj = facebookimpressionbyageobj.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key);
                }
                catch (Exception ex)
                {
                }
                try
                {
                    jofacebookstoriesobj = facebookstoriesobj.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key);
                }
                catch (Exception ex)
                {
                }
                try
                {
                    jofacebooksharing_typeUrlobj = facebooksharing_typeUrlobj.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key);
                }
                catch (Exception ex)
                {
                }
                try
                {
                    jofacebookagegenderUrlobj = facebookagegenderUrlobj.Children <JObject>().FirstOrDefault(o => o["end_time"].ToString() == key);
                }
                catch (Exception ex)
                {
                }
                DateTime dt = DateTime.Parse(key).Date;
                facebookReportViewModal.pageId = ProfileId;
                facebookReportViewModal.date   = SBHelper.ConvertToUnixTimestamp(dt);
                try
                {
                    facebookReportViewModal.totalLikes = pageobj["fan_count"].ToString();
                }
                catch
                {
                    facebookReportViewModal.totalLikes = "0";
                }
                try
                {
                    facebookReportViewModal.name = pageobj["name"].ToString();
                }
                catch
                {
                    facebookReportViewModal.name = "";
                }
                try
                {
                    facebookReportViewModal.talkingAbout = pageobj["talking_about_count"].ToString();
                }
                catch
                {
                    facebookReportViewModal.talkingAbout = "0";
                }
                try
                {
                    facebookReportViewModal.perDayLikes = obj["value"].ToString();
                }
                catch
                {
                    facebookReportViewModal.perDayLikes = "0";
                }
                try
                {
                    facebookReportViewModal.likes = Int32.Parse(obj["value"].ToString());
                }
                catch
                {
                    facebookReportViewModal.likes = 0;
                }
                try
                {
                    facebookReportViewModal.unlikes = Int32.Parse(jounlikes["value"].ToString());
                }
                catch
                {
                    facebookReportViewModal.unlikes = 0;
                }
                try
                {
                    facebookReportViewModal.perDayUnlikes = jounlikes["value"].ToString();
                }
                catch
                {
                    facebookReportViewModal.perDayUnlikes = "0";
                }
                try
                {
                    facebookReportViewModal.impression = Int32.Parse(joimpressionobj["value"].ToString());
                }
                catch
                {
                    facebookReportViewModal.impression = 0;
                }
                try
                {
                    facebookReportViewModal.perDayImpression = joimpressionobj["value"].ToString();
                }
                catch
                {
                    facebookReportViewModal.perDayImpression = "0";
                }
                try
                {
                    facebookReportViewModal.uniqueUser = Int32.Parse(jouniqueobj["value"].ToString());
                }
                catch
                {
                    facebookReportViewModal.uniqueUser = 0;
                }
                try
                {
                    facebookReportViewModal.uniqueUser = Int32.Parse(jouniqueobj["value"].ToString());
                }
                catch
                {
                    facebookReportViewModal.uniqueUser = 0;
                }
                try
                {
                    facebookReportViewModal.impressionFans = Int32.Parse(jofacebookstory_typeUrlobj["value"]["fan"].ToString());
                }
                catch
                {
                    facebookReportViewModal.impressionFans = 0;
                }
                try
                {
                    facebookReportViewModal.impressionPagePost = Int32.Parse(jofacebookstory_typeUrlobj["value"]["page post"].ToString());
                }
                catch
                {
                    facebookReportViewModal.impressionPagePost = 0;
                }
                try
                {
                    facebookReportViewModal.impressionuserPost = Int32.Parse(jofacebookstory_typeUrlobj["value"]["user post"].ToString());
                }
                catch
                {
                    facebookReportViewModal.impressionuserPost = 0;
                }
                try
                {
                    facebookReportViewModal.impressionCoupn = Int32.Parse(jofacebookstory_typeUrlobj["value"]["coupon"].ToString());
                }
                catch
                {
                    facebookReportViewModal.impressionCoupn = 0;
                }
                try
                {
                    facebookReportViewModal.impressionOther = Int32.Parse(jofacebookstory_typeUrlobj["value"]["other"].ToString());
                }
                catch
                {
                    facebookReportViewModal.impressionOther = 0;
                }
                try
                {
                    facebookReportViewModal.impressionMention = Int32.Parse(jofacebookstory_typeUrlobj["value"]["mention"].ToString());
                }
                catch
                {
                    facebookReportViewModal.impressionMention = 0;
                }
                try
                {
                    facebookReportViewModal.impressionCheckin = Int32.Parse(jofacebookstory_typeUrlobj["value"]["checkin"].ToString());
                }
                catch
                {
                    facebookReportViewModal.impressionCheckin = 0;
                }
                try
                {
                    facebookReportViewModal.impressionQuestion = Int32.Parse(jofacebookstory_typeUrlobj["value"]["question"].ToString());
                }
                catch
                {
                    facebookReportViewModal.impressionQuestion = 0;
                }
                try
                {
                    facebookReportViewModal.impressionEvent = Int32.Parse(jofacebookstory_typeUrlobj["value"]["event"].ToString());
                }
                catch
                {
                    facebookReportViewModal.impressionEvent = 0;
                }
                try
                {
                    facebookReportViewModal.viral = Int32.Parse(jofacebookviralobj["value"].ToString());
                }
                catch
                {
                    facebookReportViewModal.viral = 0;
                }
                try
                {
                    facebookReportViewModal.organic = Int32.Parse(jofacebookorganicobj["value"].ToString());
                }
                catch
                {
                    facebookReportViewModal.organic = 0;
                }
                try
                {
                    facebookReportViewModal.paid = Int32.Parse(jofacebookpaidobj["value"].ToString());
                }
                catch
                {
                    facebookReportViewModal.paid = 0;
                }
                try
                {
                    facebookReportViewModal.f_13_17 = Int32.Parse(jofacebookimpressionbyageobj["value"]["F.13-17"].ToString());
                }
                catch
                {
                    facebookReportViewModal.f_13_17 = 0;
                }
                try
                {
                    facebookReportViewModal.f_18_24 = Int32.Parse(jofacebookimpressionbyageobj["value"]["F.18-24"].ToString());
                }
                catch
                {
                    facebookReportViewModal.f_18_24 = 0;
                }
                try
                {
                    facebookReportViewModal.f_25_34 = Int32.Parse(jofacebookimpressionbyageobj["value"]["F.25-34"].ToString());
                }
                catch
                {
                    facebookReportViewModal.f_25_34 = 0;
                }
                try
                {
                    facebookReportViewModal.f_35_44 = Int32.Parse(jofacebookimpressionbyageobj["value"]["F.35-44"].ToString());
                }
                catch
                {
                    facebookReportViewModal.f_35_44 = 0;
                }
                try
                {
                    facebookReportViewModal.f_45_54 = Int32.Parse(jofacebookimpressionbyageobj["value"]["F.45-54"].ToString());
                }
                catch
                {
                    facebookReportViewModal.f_45_54 = 0;
                }
                try
                {
                    facebookReportViewModal.f_55_64 = Int32.Parse(jofacebookimpressionbyageobj["value"]["F.55-64"].ToString());
                }
                catch
                {
                    facebookReportViewModal.f_55_64 = 0;
                }
                try
                {
                    facebookReportViewModal.f_65 = Int32.Parse(jofacebookimpressionbyageobj["value"]["F.65+"].ToString());
                }
                catch
                {
                    facebookReportViewModal.f_65 = 0;
                }


                try
                {
                    facebookReportViewModal.m_13_17 = Int32.Parse(jofacebookimpressionbyageobj["value"]["M.13-17"].ToString());
                }
                catch
                {
                    facebookReportViewModal.m_13_17 = 0;
                }
                try
                {
                    facebookReportViewModal.m_18_24 = Int32.Parse(jofacebookimpressionbyageobj["value"]["M.18-24"].ToString());
                }
                catch
                {
                    facebookReportViewModal.m_18_24 = 0;
                }
                try
                {
                    facebookReportViewModal.m_25_34 = Int32.Parse(jofacebookimpressionbyageobj["value"]["M.25-34"].ToString());
                }
                catch
                {
                    facebookReportViewModal.m_25_34 = 0;
                }
                try
                {
                    facebookReportViewModal.m_35_44 = Int32.Parse(jofacebookimpressionbyageobj["value"]["M.35-44"].ToString());
                }
                catch
                {
                    facebookReportViewModal.m_35_44 = 0;
                }
                try
                {
                    facebookReportViewModal.m_45_54 = Int32.Parse(jofacebookimpressionbyageobj["value"]["M.45-54"].ToString());
                }
                catch
                {
                    facebookReportViewModal.m_45_54 = 0;
                }
                try
                {
                    facebookReportViewModal.m_55_64 = Int32.Parse(jofacebookimpressionbyageobj["value"]["M.55-64"].ToString());
                }
                catch
                {
                    facebookReportViewModal.m_55_64 = 0;
                }
                try
                {
                    facebookReportViewModal.m_65 = Int32.Parse(jofacebookimpressionbyageobj["value"]["M.65+"].ToString());
                }
                catch
                {
                    facebookReportViewModal.m_65 = 0;
                }
                try
                {
                    facebookReportViewModal.storyShare = Int32.Parse(jofacebookstoriesobj["value"].ToString());
                }
                catch
                {
                    facebookReportViewModal.storyShare = 0;
                }
                try
                {
                    facebookReportViewModal.perDayStoryShare = jofacebookstoriesobj["value"].ToString();
                }
                catch
                {
                    facebookReportViewModal.perDayStoryShare = "0";
                }
                try
                {
                    facebookReportViewModal.story_Fans = Int32.Parse(jofacebooksharing_typeUrlobj["value"]["fan"].ToString());
                }
                catch
                {
                    facebookReportViewModal.story_Fans = 0;
                }
                try
                {
                    facebookReportViewModal.story_PagePost = Int32.Parse(jofacebooksharing_typeUrlobj["value"]["page post"].ToString());
                }
                catch
                {
                    facebookReportViewModal.story_PagePost = 0;
                }
                try
                {
                    facebookReportViewModal.story_UserPost = Int32.Parse(jofacebooksharing_typeUrlobj["value"]["user post"].ToString());
                }
                catch
                {
                    facebookReportViewModal.story_UserPost = 0;
                }
                try
                {
                    facebookReportViewModal.story_Question = Int32.Parse(jofacebooksharing_typeUrlobj["value"]["question"].ToString());
                }
                catch
                {
                    facebookReportViewModal.story_Question = 0;
                }
                try
                {
                    facebookReportViewModal.story_Mention = Int32.Parse(jofacebooksharing_typeUrlobj["value"]["mention"].ToString());
                }
                catch
                {
                    facebookReportViewModal.story_Mention = 0;
                }
                try
                {
                    facebookReportViewModal.story_Other = Int32.Parse(jofacebooksharing_typeUrlobj["value"]["other"].ToString());
                }
                catch
                {
                    facebookReportViewModal.story_Other = 0;
                }
                try
                {
                    facebookReportViewModal.story_Coupon = Int32.Parse(jofacebooksharing_typeUrlobj["value"]["coupon"].ToString());
                }
                catch
                {
                    facebookReportViewModal.story_Coupon = 0;
                }
                try
                {
                    facebookReportViewModal.story_Event = Int32.Parse(jofacebooksharing_typeUrlobj["value"]["event"].ToString());
                }
                catch
                {
                    facebookReportViewModal.story_Event = 0;
                }
                try
                {
                    facebookReportViewModal.story_Checkin = Int32.Parse(jofacebooksharing_typeUrlobj["value"]["checkin"].ToString());
                }
                catch
                {
                    facebookReportViewModal.story_Checkin = 0;
                }

                try
                {
                    facebookReportViewModal.sharing_F_13_17 = Int32.Parse(jofacebookagegenderUrlobj["value"]["F.13-17"].ToString());
                }
                catch
                {
                    facebookReportViewModal.sharing_F_13_17 = 0;
                }
                try
                {
                    facebookReportViewModal.sharing_F_18_24 = Int32.Parse(jofacebookagegenderUrlobj["value"]["F.18-24"].ToString());
                }
                catch
                {
                    facebookReportViewModal.sharing_F_18_24 = 0;
                }
                try
                {
                    facebookReportViewModal.sharing_F_25_34 = Int32.Parse(jofacebookagegenderUrlobj["value"]["F.25-34"].ToString());
                }
                catch
                {
                    facebookReportViewModal.sharing_F_25_34 = 0;
                }
                try
                {
                    facebookReportViewModal.sharing_F_35_44 = Int32.Parse(jofacebookagegenderUrlobj["value"]["F.35-44"].ToString());
                }
                catch
                {
                    facebookReportViewModal.sharing_F_35_44 = 0;
                }
                try
                {
                    facebookReportViewModal.sharing_F_45_54 = Int32.Parse(jofacebookagegenderUrlobj["value"]["F.45-54"].ToString());
                }
                catch
                {
                    facebookReportViewModal.sharing_F_45_54 = 0;
                }
                try
                {
                    facebookReportViewModal.sharing_F_55_64 = Int32.Parse(jofacebookagegenderUrlobj["value"]["F.55-64"].ToString());
                }
                catch
                {
                    facebookReportViewModal.sharing_F_55_64 = 0;
                }
                try
                {
                    facebookReportViewModal.sharing_F_65 = Int32.Parse(jofacebookagegenderUrlobj["value"]["F.65+"].ToString());
                }
                catch
                {
                    facebookReportViewModal.sharing_F_65 = 0;
                }



                try
                {
                    facebookReportViewModal.sharing_M_13_17 = Int32.Parse(jofacebookagegenderUrlobj["value"]["M.13-17"].ToString());
                }
                catch
                {
                    facebookReportViewModal.sharing_M_13_17 = 0;
                }
                try
                {
                    facebookReportViewModal.sharing_M_18_24 = Int32.Parse(jofacebookagegenderUrlobj["value"]["M.18-24"].ToString());
                }
                catch
                {
                    facebookReportViewModal.sharing_M_18_24 = 0;
                }
                try
                {
                    facebookReportViewModal.sharing_M_25_34 = Int32.Parse(jofacebookagegenderUrlobj["value"]["M.25-34"].ToString());
                }
                catch
                {
                    facebookReportViewModal.sharing_M_25_34 = 0;
                }
                try
                {
                    facebookReportViewModal.sharing_M_35_44 = Int32.Parse(jofacebookagegenderUrlobj["value"]["M.35-44"].ToString());
                }
                catch
                {
                    facebookReportViewModal.sharing_M_35_44 = 0;
                }
                try
                {
                    facebookReportViewModal.sharing_M_45_54 = Int32.Parse(jofacebookagegenderUrlobj["value"]["M.45-54"].ToString());
                }
                catch
                {
                    facebookReportViewModal.sharing_M_45_54 = 0;
                }
                try
                {
                    facebookReportViewModal.sharing_M_55_64 = Int32.Parse(jofacebookagegenderUrlobj["value"]["M.55-64"].ToString());
                }
                catch
                {
                    facebookReportViewModal.sharing_M_55_64 = 0;
                }
                try
                {
                    facebookReportViewModal.sharing_M_65 = Int32.Parse(jofacebookagegenderUrlobj["value"]["F.65+"].ToString());
                }
                catch
                {
                    facebookReportViewModal.sharing_M_65 = 0;
                }
                facebookReportViewModal.id = ObjectId.GenerateNewId();
                try
                {
                    MongoRepository mongorepo = new MongoRepository("FacaebookPageDailyReports");
                    var             ret       = mongorepo.Find <Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports>(t => t.date == facebookReportViewModal.date && t.pageId == facebookReportViewModal.pageId);
                    var             task      = Task.Run(async() =>
                    {
                        return(await ret);
                    });
                    if (task.Result != null)
                    {
                        if (task.Result.Count() < 1)
                        {
                            mongorepo.Add <Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports>(facebookReportViewModal);
                        }
                    }
                }
                catch (Exception ex)
                {
                }
            }
        }
Ejemplo n.º 20
0
        public static string ParseFeedUrl(string TextUrl, Domain.Socioboard.Enum.SocialProfileType profiletype, string profileid, long userId, string profileName, string profileImageUrl)
        {
            MongoRepository _RssFeedRepository = new MongoRepository("RssFeed");

            try
            {
                XmlDocument xmlDoc = new XmlDocument(); // Create an XML document object
                xmlDoc.Load(TextUrl);
                var abc = xmlDoc.DocumentElement.GetElementsByTagName("item");
                if (profiletype == Domain.Socioboard.Enum.SocialProfileType.Facebook || profiletype == Domain.Socioboard.Enum.SocialProfileType.FacebookFanPage)
                {
                    Model.DatabaseRepository dbr = new DatabaseRepository();
                    Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = dbr.Find <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == profileid).First();

                    if (_Facebookaccounts != null)
                    {
                        if (_Facebookaccounts.IsActive)
                        {
                            foreach (XmlElement item in abc)
                            {
                                Domain.Socioboard.Models.Mongo.RssFeed objRssFeeds = new Domain.Socioboard.Models.Mongo.RssFeed();
                                try
                                {
                                    objRssFeeds.Id              = ObjectId.GenerateNewId();
                                    objRssFeeds.strId           = ObjectId.GenerateNewId().ToString();
                                    objRssFeeds.ProfileName     = profileName;
                                    objRssFeeds.ProfileImageUrl = profileImageUrl;

                                    try
                                    {
                                        objRssFeeds.Message = item.ChildNodes[9].InnerText;
                                        objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[&#8230;]", "");
                                        objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>|&nbsp;", string.Empty);
                                    }
                                    catch (Exception ex)
                                    {
                                        try
                                        {
                                            if (item.ChildNodes[2].InnerText.Contains("www") && item.ChildNodes[2].InnerText.Contains("http"))
                                            {
                                                objRssFeeds.Message = item.ChildNodes[1].InnerText;
                                                objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[&#8230;]", "");
                                                objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>|&nbsp;", string.Empty);
                                            }
                                            else
                                            {
                                                objRssFeeds.Message = item.ChildNodes[2].InnerText;
                                                objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[&#8230;]", "");
                                                objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>|&nbsp;", string.Empty);
                                            }
                                        }
                                        catch
                                        {
                                            objRssFeeds.Message = item.ChildNodes[1].InnerText;
                                            objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[&#8230;]", "");
                                            objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>|&nbsp;", string.Empty);
                                        }
                                    }


                                    try
                                    {
                                        objRssFeeds.PublishingDate = DateTime.Parse(item.ChildNodes[4].InnerText).ToString("yyyy/MM/dd HH:mm:ss");
                                    }
                                    catch (Exception ex)
                                    {
                                        objRssFeeds.PublishingDate = DateTime.Parse(item.ChildNodes[3].InnerText).ToString("yyyy/MM/dd HH:mm:ss");
                                    }

                                    objRssFeeds.Title = item.ChildNodes[0].InnerText;

                                    if (item.ChildNodes[1].InnerText.Contains("www") || item.ChildNodes[1].InnerText.Contains("http"))
                                    {
                                        try
                                        {
                                            objRssFeeds.Link = item.ChildNodes[1].InnerText;
                                        }
                                        catch (Exception ex)
                                        {
                                            objRssFeeds.Link = item.ChildNodes[2].InnerText;
                                        }
                                    }
                                    else
                                    {
                                        objRssFeeds.Link = item.ChildNodes[2].InnerText;
                                    }
                                    objRssFeeds.RssFeedUrl  = TextUrl;
                                    objRssFeeds.ProfileId   = profileid;
                                    objRssFeeds.ProfileType = profiletype;
                                    objRssFeeds.Status      = false;
                                    var ret  = _RssFeedRepository.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.Link.Equals(objRssFeeds.Link) && t.ProfileId.Equals(profileid) && t.ProfileType.Equals(profiletype));
                                    var task = Task.Run(async() =>
                                    {
                                        return(await ret);
                                    });
                                    int count = task.Result.Count;
                                    if (count < 1)
                                    {
                                        _RssFeedRepository.Add <Domain.Socioboard.Models.Mongo.RssFeed>(objRssFeeds);
                                    }
                                }
                                catch (Exception ex)
                                {
                                }
                                if (apiHitsCount < MaxapiHitsCount)
                                {
                                    string facebookdata = FacebookComposeMessageRss(objRssFeeds.Message, _Facebookaccounts.AccessToken, _Facebookaccounts.FbUserId, objRssFeeds.Title, objRssFeeds.Link, objRssFeeds.strId);
                                    if (!string.IsNullOrEmpty(facebookdata))
                                    {
                                        apiHitsCount++;
                                    }
                                }
                                else
                                {
                                    apiHitsCount = 0;
                                    return("ok");
                                }
                            }
                            _Facebookaccounts.SchedulerUpdate = DateTime.UtcNow;
                            dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(_Facebookaccounts);
                        }
                    }
                }
                if (profiletype == Domain.Socioboard.Enum.SocialProfileType.Twitter)
                {
                    Model.DatabaseRepository dbr = new DatabaseRepository();
                    Domain.Socioboard.Models.TwitterAccount _TwitterAccount = dbr.Find <Domain.Socioboard.Models.TwitterAccount>(t => t.twitterUserId == profileid).First();

                    if (_TwitterAccount != null)
                    {
                        if (_TwitterAccount.isActive)
                        {
                            foreach (XmlElement item in abc)
                            {
                                Domain.Socioboard.Models.Mongo.RssFeed objRssFeeds = new Domain.Socioboard.Models.Mongo.RssFeed();
                                try
                                {
                                    objRssFeeds.Id              = ObjectId.GenerateNewId();
                                    objRssFeeds.strId           = ObjectId.GenerateNewId().ToString();
                                    objRssFeeds.ProfileName     = profileName;
                                    objRssFeeds.ProfileImageUrl = profileImageUrl;

                                    try
                                    {
                                        objRssFeeds.Message = item.ChildNodes[9].InnerText;
                                        objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[&#8230;]", "");
                                        objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>|&nbsp;", string.Empty);
                                    }
                                    catch (Exception ex)
                                    {
                                        try
                                        {
                                            if (item.ChildNodes[2].InnerText.Contains("www") && item.ChildNodes[2].InnerText.Contains("http"))
                                            {
                                                objRssFeeds.Message = item.ChildNodes[1].InnerText;
                                                objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[&#8230;]", "");
                                                objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>|&nbsp;", string.Empty);
                                            }
                                            else
                                            {
                                                objRssFeeds.Message = item.ChildNodes[2].InnerText;
                                                objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[&#8230;]", "");
                                                objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>|&nbsp;", string.Empty);
                                            }
                                        }
                                        catch
                                        {
                                            objRssFeeds.Message = item.ChildNodes[1].InnerText;
                                            objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[&#8230;]", "");
                                            objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>|&nbsp;", string.Empty);
                                        }
                                    }


                                    try
                                    {
                                        objRssFeeds.PublishingDate = DateTime.Parse(item.ChildNodes[4].InnerText).ToString("yyyy/MM/dd HH:mm:ss");
                                    }
                                    catch (Exception ex)
                                    {
                                        objRssFeeds.PublishingDate = DateTime.Parse(item.ChildNodes[3].InnerText).ToString("yyyy/MM/dd HH:mm:ss");
                                    }

                                    objRssFeeds.Title = item.ChildNodes[0].InnerText;

                                    if (item.ChildNodes[1].InnerText.Contains("www") || item.ChildNodes[1].InnerText.Contains("http"))
                                    {
                                        try
                                        {
                                            objRssFeeds.Link = item.ChildNodes[1].InnerText;
                                        }
                                        catch (Exception ex)
                                        {
                                            objRssFeeds.Link = item.ChildNodes[2].InnerText;
                                        }
                                    }
                                    else
                                    {
                                        objRssFeeds.Link = item.ChildNodes[2].InnerText;
                                    }
                                    objRssFeeds.RssFeedUrl  = TextUrl;
                                    objRssFeeds.ProfileId   = profileid;
                                    objRssFeeds.ProfileType = profiletype;
                                    objRssFeeds.Status      = false;
                                    var ret  = _RssFeedRepository.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.Link.Equals(objRssFeeds.Link) && t.ProfileId.Equals(profileid) && t.ProfileType.Equals(profiletype));
                                    var task = Task.Run(async() =>
                                    {
                                        return(await ret);
                                    });
                                    int count = task.Result.Count;
                                    if (count < 1)
                                    {
                                        _RssFeedRepository.Add <Domain.Socioboard.Models.Mongo.RssFeed>(objRssFeeds);
                                    }
                                }
                                catch (Exception ex)
                                {
                                }
                                if (twtapiHitsCount < twtMaxapiHitsCount)
                                {
                                    string twitterdata = TwitterComposeMessageRss(objRssFeeds.Message, _TwitterAccount.oAuthToken, _TwitterAccount.oAuthSecret, _TwitterAccount.twitterUserId, _TwitterAccount.twitterScreenName, objRssFeeds.strId);
                                    if (!string.IsNullOrEmpty(twitterdata))
                                    {
                                        twtapiHitsCount++;
                                    }
                                }
                                else
                                {
                                    twtapiHitsCount = 0;
                                    return("ok");
                                }
                            }
                            _TwitterAccount.SchedulerUpdate = DateTime.UtcNow;
                            dbr.Update <Domain.Socioboard.Models.TwitterAccount>(_TwitterAccount);
                        }
                    }
                }


                return("ok");
            }
            catch (Exception ex)
            {
                return("invalid url");
            }
        }
Ejemplo n.º 21
0
        public static int updateFacebookPageFeeds(Domain.Socioboard.Models.Facebookaccounts fbAcc)
        {
            apiHitsCount = 0;
            Model.DatabaseRepository dbr = new DatabaseRepository();

            if (fbAcc.LastUpdate.AddHours(1) <= DateTime.UtcNow)
            {
                if (fbAcc.IsAccessTokenActive)
                {
                    dynamic profile = Fbpages.getFbPageData(fbAcc.AccessToken);
                    if (fbAcc.FbPageSubscription == Domain.Socioboard.Enum.FbPageSubscription.NotSubscribed)
                    {
                        string subscribed_apps = Fbpages.subscribed_apps(fbAcc.AccessToken, Convert.ToString(profile["id"]));
                        fbAcc.FbPageSubscription = Domain.Socioboard.Enum.FbPageSubscription.Subscribed;
                    }
                    apiHitsCount++;
                    if (Convert.ToString(profile) != "Invalid Access Token")
                    {
                        try
                        {
                            fbAcc.Friends = (Convert.ToInt64(profile["fan_count"]));
                        }
                        catch (Exception)
                        {
                            fbAcc.Friends = fbAcc.Friends;
                        }

                        try
                        {
                            fbAcc.EmailId = (Convert.ToString(profile["emails"]));
                            fbAcc.EmailId = fbAcc.EmailId.Replace("[", "").Replace("]", "").Replace("\"", "");
                        }
                        catch (Exception)
                        {
                            fbAcc.EmailId = fbAcc.EmailId;
                        }

                        try
                        {
                            fbAcc.coverPic = (Convert.ToString(profile["cover"]["source"]));
                        }
                        catch (Exception)
                        {
                        }
                        try
                        {
                            dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(fbAcc);
                        }
                        catch { }
                        while (apiHitsCount < MaxapiHitsCount)
                        {
                            SaveFacebookFeeds(fbAcc.AccessToken, fbAcc.FbUserId, fbAcc.FbUserName);
                            SavePageConversations(fbAcc.AccessToken, fbAcc.FbUserId);
                            SaveFacebookPageFeed(fbAcc.AccessToken, fbAcc.FbUserId, fbAcc.FbUserName);
                            SaveFacebookPagePromotionalDetails(fbAcc.AccessToken, fbAcc.FbUserId);
                            SaveFacebookPageTaggedDetails(fbAcc.AccessToken, fbAcc.FbUserId);
                            // SavePageNotification(fbAcc.AccessToken, fbAcc.FbUserId);
                        }
                    }
                }
            }
            else
            {
                apiHitsCount = 0;
            }
            return(0);
        }
Ejemplo n.º 22
0
        public static string postRssFeeds(Domain.Socioboard.Models.Mongo.Rss _rss)
        {
            MongoRepository    mongorepo = new MongoRepository("RssFeed");
            DatabaseRepository dbr       = new DatabaseRepository();
            List <Domain.Socioboard.Models.Mongo.RssFeed> objrssdata = new List <Domain.Socioboard.Models.Mongo.RssFeed>();
            var ret  = mongorepo.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.ProfileId == _rss.ProfileId && t.Status == false);
            var task = Task.Run(async() =>
            {
                return(await ret);
            });
            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
                    {
                        if (item.Status == false)
                        {
                            Domain.Socioboard.Models.Facebookaccounts lstFbAcc = dbr.Single <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId.Equals(item.ProfileId));
                            // Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = Repositories.FacebookRepository.getFacebookAccount(item.ProfileId, _redisCache, dbr);
                            string msg = FacebookComposeMessageRss(item.Title, lstFbAcc.AccessToken, lstFbAcc.FbUserId, item.Title, item.Link, item.strId);

                            var builders = Builders <BsonDocument> .Filter;
                            FilterDefinition <BsonDocument> filter = builders.Eq("strId", item.strId);
                            var update = Builders <BsonDocument> .Update.Set("Status", true);

                            mongorepo.Update <Domain.Socioboard.Models.Mongo.RssFeed>(update, filter);
                            var resu  = mongorepo.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.strId == item.strId);
                            var tasks = Task.Run(async() =>
                            {
                                return(await resu);
                            });
                            IList <Domain.Socioboard.Models.Mongo.RssFeed> _rssdata = tasks.Result;
                            Console.WriteLine("rss Data");
                            Console.WriteLine(_rssdata);
                        }
                    }
                    catch (Exception ex)
                    {
                        return("");
                    }
                    Thread.Sleep(20 * 1000);
                }
                if (_objrssdata.First().ProfileType == Domain.Socioboard.Enum.SocialProfileType.Twitter)
                {
                    try

                    {
                        if (item.Status == false)
                        {
                            Domain.Socioboard.Models.TwitterAccount lstTwtAcc = dbr.Single <Domain.Socioboard.Models.TwitterAccount>(t => t.twitterUserId.Equals(item.ProfileId));
                            string msg = TwitterComposeMessageRss(item.Link, lstTwtAcc.oAuthToken, lstTwtAcc.oAuthSecret, lstTwtAcc.twitterUserId, lstTwtAcc.twitterScreenName, item.strId);

                            var builders = Builders <BsonDocument> .Filter;
                            FilterDefinition <BsonDocument> filter = builders.Eq("strId", item.strId);
                            var update = Builders <BsonDocument> .Update.Set("Status", true);

                            mongorepo.Update <Domain.Socioboard.Models.Mongo.RssFeed>(update, filter);
                            var resu  = mongorepo.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.strId == item.strId);
                            var tasks = Task.Run(async() =>
                            {
                                return(await resu);
                            });
                            IList <Domain.Socioboard.Models.Mongo.RssFeed> _rssdata = tasks.Result;
                            Console.WriteLine("rss Data");
                            Console.WriteLine(_rssdata);
                        }
                    }
                    catch (Exception ex)
                    {
                        return("");
                    }
                    Thread.Sleep(20 * 000);
                }
            }
            return("");
            //  string facebookdata = FacebookComposeMessageRss(objRssFeeds.Message, _Facebookaccounts.AccessToken, _Facebookaccounts.FbUserId, objRssFeeds.Title, objRssFeeds.Link, objRssFeeds.strId);
        }
Ejemplo n.º 23
0
        public static string saveContentDataIdReposi(List <Domain.Socioboard.Models.Mongo.ContentFeedsShareathon> shareathon, long userId, string fbPageId, int timeInterval, Helper.Cache _redisCache, Helper.AppSettings settings, Model.DatabaseRepository dbr)
        {
            string[] lstProfileIds = null;
            if (fbPageId != null)
            {
                lstProfileIds = fbPageId.Split(',');
                fbPageId      = lstProfileIds[0];
            }

            MongoRepository mongorepo        = new MongoRepository("ContentFeedsShareathon", settings);
            MongoRepository mongoreposhareId = new MongoRepository("ContentStudioShareathonIdData", settings);



            int totalval = 0;

            // DateTime timeval = DateTime.Now;
            foreach (var fbid in lstProfileIds)
            {
                Domain.Socioboard.Models.Facebookaccounts listfb = dbr.FindSingle <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == fbid);
                int    countval     = 0;
                int    countitem    = 0;
                string timevalue    = null;
                string sectimevalue = null;
                foreach (var item in shareathon)
                {
                    var retval  = mongoreposhareId.Find <Domain.Socioboard.Models.Mongo.ContentStudioShareathonIdData>(t => t.FbPageId.Contains(fbid) && t.postId == item.postId);
                    var taskval = Task.Run(async() =>
                    {
                        return(await retval);
                    });
                    int countvalue = taskval.Result.Count;
                    if (countvalue < 1)
                    {
                        Domain.Socioboard.Models.Mongo.ContentStudioShareathonIdData lstIdforPost = new Domain.Socioboard.Models.Mongo.ContentStudioShareathonIdData();
                        lstIdforPost.Id                  = ObjectId.GenerateNewId();
                        lstIdforPost.strId               = ObjectId.GenerateNewId().ToString();
                        lstIdforPost.FbPageId            = fbid;
                        lstIdforPost.Status              = false;
                        lstIdforPost.UserId              = listfb.UserId;
                        lstIdforPost.Timeintervalminutes = timeInterval;
                        lstIdforPost.postId              = item.postId;
                        lstIdforPost.lastsharestamp      = SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow);
                        if (countitem == 0)
                        {
                            lstIdforPost.latsSharetime = DateTime.UtcNow;
                        }
                        else
                        {
                            // a.AddMinutes
                            DateTime secval = Convert.ToDateTime(timevalue);
                            lstIdforPost.latsSharetime = secval.AddMinutes(timeInterval);//timevalue.latsSharetime.AddMinutes(timeInterval);
                            // var result = TimeSpan.FromMinutes(timeInterval);
                            //  lstIdforPost.lastsharestamp = lstIdforPost.lastsharestamp + datetotimestamp;
                        }


                        try
                        {
                            mongoreposhareId.Add(lstIdforPost);
                        }
                        catch (Exception ex)
                        {
                            //return "not added";
                        }
                        DateTime timeval = lstIdforPost.latsSharetime;
                        timevalue = timeval.ToString();
                    }
                    int count = 0;
                    try
                    {
                        var ret  = mongorepo.Find <Domain.Socioboard.Models.Mongo.ContentFeedsShareathon>(t => t.postId.Contains(item.postId) && t.FbPageId.Contains(fbid));
                        var task = Task.Run(async() =>
                        {
                            return(await ret);
                        });
                        count = task.Result.Count;
                    }
                    catch
                    {
                        var ret  = mongorepo.Find <Domain.Socioboard.Models.Mongo.ContentFeedsShareathon>(t => t.strId.Contains(item.strId) && t.FbPageId.Contains(fbid));
                        var task = Task.Run(async() =>
                        {
                            return(await ret);
                        });
                        count = task.Result.Count;
                    }


                    if (count < 1)
                    {
                        Domain.Socioboard.Models.Mongo.ContentFeedsShareathon lstforShareathon = new Domain.Socioboard.Models.Mongo.ContentFeedsShareathon();

                        lstforShareathon.Id                  = ObjectId.GenerateNewId();
                        lstforShareathon.strId               = ObjectId.GenerateNewId().ToString();
                        lstforShareathon.FbPageId            = fbid;
                        lstforShareathon.postId              = item.postId;
                        lstforShareathon.networkType         = item.networkType;
                        lstforShareathon.title               = item.title;
                        lstforShareathon.facebookAccount     = listfb.FbUserName;
                        lstforShareathon.ImageUrl            = item.ImageUrl;
                        lstforShareathon.postUrl             = item.postUrl;
                        lstforShareathon.videourl            = item.videourl;
                        lstforShareathon.UserId              = userId;
                        lstforShareathon.Timeintervalminutes = timeInterval;
                        lstforShareathon.lastsharestamp      = SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow);

                        lstforShareathon.Status = false;
                        if (countitem == 0)
                        {
                            lstforShareathon.latsSharetime = DateTime.UtcNow;
                        }
                        else
                        {
                            // a.AddMinutes
                            DateTime sectableaddtime = Convert.ToDateTime(sectimevalue);
                            lstforShareathon.latsSharetime = sectableaddtime.AddMinutes(timeInterval);
                        }
                        try
                        {
                            mongorepo.Add(lstforShareathon);
                            countval++;
                        }
                        catch (Exception ex)
                        {
                            //return "not added";
                        }

                        DateTime timevalsec = lstforShareathon.latsSharetime;
                        sectimevalue = timevalsec.ToString();
                    }
                    else
                    {
                        // return "some problem while adding";
                    }
                    countitem++;
                    totalval = countval;
                }
            }


            if (totalval > 0)
            {
                return("added successfully");
            }
            else
            {
                return("feed has already added");
            }
        }