//Added by Avinash Verma & Sumit Gupta [30-01-15]
        private void AddFacebookFeedsWithPagination(string UserId, FacebookClient fb, dynamic profile)
        {
            int I = 0;
            try
            {
                //objFacebookFeed = new Domain.Socioboard.Domain.FacebookFeed();
                MongoFacebookFeed objFacebookFeed = new MongoFacebookFeed();
                System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls;

                string nexturl = "v2.0/me/feed";//"v2.0/me/posts";


                for (int i = 0; i < 50; i++)
                {
                    dynamic feeds = fb.Get(nexturl);
                    //dynamic feedss = fb.Get("/338818712957141/posts");
                    //dynamic feedsss = fb.Get("/338818712957141/feed");
                    if (feeds != null)
                    {
                        try
                        {
                            nexturl = feeds["paging"]["next"].ToString();
                        }
                        catch (Exception ex)
                        {
                            logger.Error(ex.Message);
                            logger.Error(ex.StackTrace);
                        }

                        foreach (var result in feeds["data"])
                        {

                            objFacebookFeed.Type = "fb_feed";

                            try
                            {
                                objFacebookFeed.UserId = UserId;
                            }
                            catch (Exception ex)
                            { Console.WriteLine(ex.StackTrace); }

                            try
                            {
                                objFacebookFeed.ProfileId = profile["id"].ToString();
                            }
                            catch (Exception ex)
                            { Console.WriteLine(ex.StackTrace); }

                            try
                            {
                                objFacebookFeed.Id = MongoDB.Bson.ObjectId.GenerateNewId();
                            }
                            catch (Exception ex)
                            { Console.WriteLine(ex.StackTrace); }



                            objFacebookFeed.FromProfileUrl = "http://graph.facebook.com/" + result["from"]["id"] + "/picture?type=small";
                            objFacebookFeed.FromName = result["from"]["name"].ToString();
                            objFacebookFeed.FromId = result["from"]["id"].ToString();
                            objFacebookFeed.FeedId = result["id"].ToString();
                            objFacebookFeed.FeedDate = DateTime.Parse(result["created_time"].ToString()).ToString("yyyy/MM/dd HH:mm:ss");
                            objFacebookFeed.FbComment = "http://graph.facebook.com/" + result["id"] + "/comments";
                            objFacebookFeed.FbLike = "http://graph.facebook.com/" + result["id"] + "/likes";
                            //Added by Sumit Gupta [17-02-15]
                            try
                            {
                                objFacebookFeed.Picture = result["picture"].ToString();
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.StackTrace);
                                objFacebookFeed.Picture = null;
                            }

                            string message = string.Empty;
                            int lstfbcount = 0;

                            if (lstfbcount < 25)
                            {
                                try
                                {
                                    if (result["message"] != null)
                                    {
                                        message = result["message"];
                                        lstfbcount++;

                                    }
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine(ex.StackTrace);
                                    try
                                    {
                                        if (result["description"] != null)
                                        {
                                            message = result["description"];
                                            lstfbcount++;

                                        }
                                    }
                                    catch (Exception exx)
                                    {
                                        try
                                        {
                                            Console.WriteLine(exx.StackTrace);
                                            if (result["story"] != null)
                                            {
                                                message = result["story"];
                                                lstfbcount++;
                                            }
                                        }
                                        catch (Exception exxx)
                                        {
                                            Console.WriteLine(exxx.StackTrace);
                                            message = string.Empty;
                                        }
                                    }

                                }
                            }
                            objFacebookFeed.FeedDescription = message;
                            objFacebookFeed.EntryDate = DateTime.UtcNow.ToString("yyyy/MM/dd HH:mm:ss");

                            //// Edited by Antima[20/12/2014]

                            //SentimentalAnalysis _SentimentalAnalysis = new SentimentalAnalysis();
                            //FeedSentimentalAnalysisRepository _FeedSentimentalAnalysisRepository = new FeedSentimentalAnalysisRepository();

                            //try
                            //{
                            //    if (_FeedSentimentalAnalysisRepository.checkFeedExists(objFacebookFeed.ProfileId.ToString(), Guid.Parse(UserId), objFacebookFeed.Id.ToString()))
                            //    {
                            //        if (!string.IsNullOrEmpty(message))
                            //        {
                            //            string Network = "facebook";
                            //            _SentimentalAnalysis.GetPostSentimentsFromUclassify(Guid.Parse(UserId), objFacebookFeed.ProfileId, objFacebookFeed.MessageId, message, Network);
                            //        }
                            //    }
                            //}
                            //catch (Exception ex)
                            //{
                            //    logger.Error(ex.Message);
                            //    logger.Error(ex.StackTrace);
                            //}

                            //if (!objFacebookFeedRepository.checkFacebookFeedExists(objFacebookFeed.FeedId))
                            //{
                            //    I++;
                            //    objFacebookFeedRepository.addFacebookFeed(objFacebookFeed);
                            //    logger.Error("AddFacebookFeedsWithPaginationCount>>>"+I);
                            //}
                            I++;
                            MongoRepository mongorepo = new MongoRepository("MongoFacebookFeed");
                            mongorepo.Add<MongoFacebookFeed>(objFacebookFeed);
                        }
                    }
                    else
                    {
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);
                logger.Error(ex.StackTrace);
                Console.Write(ex.StackTrace);
            }
        }
        private List<Domain.Socioboard.Domain.MongoFacebookFeed> AddFacebookFeeds(string UserId, FacebookClient fb, dynamic profile)
        {
            //List of new Feeds
            List<Domain.Socioboard.Domain.MongoFacebookFeed> lstFacebookFeeds = new List<Domain.Socioboard.Domain.MongoFacebookFeed>();

            try
            {

                //  Domain.Socioboard.Domain.FacebookFeed objFacebookFeed = new Domain.Socioboard.Domain.FacebookFeed();

                MongoFacebookFeed objFacebookFeed = new MongoFacebookFeed();
                System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls;

                string nexturl = "v2.0/me/feed";//"v2.0/me/posts";


                //for (int i = 0; i < 10; i++)
                {
                    dynamic feeds = fb.Get(nexturl);
                    //dynamic feedss = fb.Get("/338818712957141/posts");
                    //dynamic feedsss = fb.Get("/338818712957141/feed");
                    if (feeds != null)
                    {
                        try
                        {
                            nexturl = feeds["paging"]["next"].ToString();
                        }
                        catch (Exception ex)
                        {
                            logger.Error(ex.Message);
                            logger.Error(ex.StackTrace);
                        }

                        foreach (var result in feeds["data"])
                        {
                            //   objFacebookFeed = new Domain.Socioboard.Domain.FacebookFeed();

                            objFacebookFeed.Type = "fb_feed";

                            try
                            {
                                objFacebookFeed.UserId = UserId;
                            }
                            catch (Exception ex)
                            { Console.WriteLine(ex.StackTrace); }

                            try
                            {
                                objFacebookFeed.ProfileId = profile["id"].ToString();
                            }
                            catch (Exception ex)
                            { Console.WriteLine(ex.StackTrace); }

                            try
                            {
                                objFacebookFeed.Id = MongoDB.Bson.ObjectId.GenerateNewId();
                            }
                            catch (Exception ex)
                            { Console.WriteLine(ex.StackTrace); }



                            objFacebookFeed.FromProfileUrl = "http://graph.facebook.com/" + result["from"]["id"] + "/picture?type=small";
                            objFacebookFeed.FromName = result["from"]["name"].ToString();
                            objFacebookFeed.FromId = result["from"]["id"].ToString();
                            objFacebookFeed.FeedId = result["id"].ToString();
                            objFacebookFeed.FeedDate = DateTime.Parse(result["created_time"].ToString()).ToString("yyyy/MM/dd HH:mm:ss");
                            objFacebookFeed.FbComment = "http://graph.facebook.com/" + result["id"] + "/comments";
                            objFacebookFeed.FbLike = "http://graph.facebook.com/" + result["id"] + "/likes";

                            //Commented as these cause errors on API
                            //Added by Sumit Gupta [31-01-15] to get post Shares/Likes/Comments
                            #region Added by Sumit Gupta [31-01-15]
                            //try
                            //{
                            //    dynamic like = fb.Get("v2.0/" + objFbPagePost.PostId + "/likes?summary=1&limit=0");

                            //    objFbPagePost.Likes = Convert.ToInt32(like["summary"]["total_count"]);

                            //}
                            //catch (Exception ex)
                            //{
                            //    Console.WriteLine(ex.StackTrace);
                            //}

                            //try
                            //{
                            //    dynamic comment = fb.Get("v2.0/" + objFbPagePost.PostId + "/comments?summary=1&limit=0");

                            //    objFbPagePost.Comments = Convert.ToInt32(comment["summary"]["total_count"]);
                            //}
                            //catch (Exception ex)
                            //{
                            //    Console.WriteLine(ex.StackTrace);
                            //}
                            //try
                            //{
                            //    dynamic shares = fb.Get("v2.0/" + objFbPagePost.PostId);
                            //    objFbPagePost.Shares = Convert.ToInt32(shares["shares"]["count"]);
                            //}
                            //catch (Exception ex)
                            //{
                            //    Console.WriteLine(ex.StackTrace);
                            //    logger.Error(ex.StackTrace);
                            //}
                            #endregion

                            //Added by Sumit Gupta [17-02-15]
                            try
                            {
                                objFacebookFeed.Picture = result["picture"].ToString();
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.StackTrace);
                                objFacebookFeed.Picture = "";
                            }

                            string message = string.Empty;
                            int lstfbcount = 0;

                            if (lstfbcount < 25)
                            {
                                try
                                {
                                    if (result["message"] != null)
                                    {
                                        message = result["message"];
                                        lstfbcount++;

                                    }
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine(ex.StackTrace);
                                    try
                                    {
                                        if (result["description"] != null)
                                        {
                                            message = result["description"];
                                            lstfbcount++;

                                        }
                                    }
                                    catch (Exception exx)
                                    {
                                        try
                                        {
                                            Console.WriteLine(exx.StackTrace);
                                            if (result["story"] != null)
                                            {
                                                message = result["story"];
                                                lstfbcount++;
                                            }
                                        }
                                        catch (Exception exxx)
                                        {
                                            Console.WriteLine(exxx.StackTrace);
                                            message = string.Empty;
                                        }
                                    }

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

                            //Check to avoid duplicacy
                            //if (!objFacebookFeedRepository.checkFacebookFeedExists(objFacebookFeed.FeedId))
                            //{
                            //    objFacebookFeedRepository.addFacebookFeed(objFacebookFeed);

                            //    lstFacebookFeeds.Add(objFacebookFeed);
                            //}

                            MongoRepository mongorepo = new MongoRepository("MongoFacebookFeed");
                            mongorepo.Add<MongoFacebookFeed>(objFacebookFeed);
                        }
                    }
                    else
                    {
                        //break; 
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);
                logger.Error(ex.StackTrace);
                Console.Write(ex.StackTrace);
            }

            return lstFacebookFeeds;
        }
Пример #3
0
        private List<Domain.Socioboard.Domain.MongoFacebookFeed> AddFacebookFeeds(string UserId, FacebookClient fb, dynamic profile)
        {
            List<Domain.Socioboard.Domain.MongoFacebookFeed> lstFacebookFeeds = new List<Domain.Socioboard.Domain.MongoFacebookFeed>();
            try
            {
                System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls;
                string nexturl = "v2.0/me/feed?limit=20";
                dynamic feeds = fb.Get(nexturl);
                if (feeds != null)
                {

                    foreach (var result in feeds["data"])
                    {
                        MongoFacebookFeed objFacebookFeed = new MongoFacebookFeed();
                        objFacebookFeed.Type = "fb_feed";
                        try
                        {
                            objFacebookFeed.UserId = UserId;
                        }
                        catch { }
                        try
                        {
                            objFacebookFeed.ProfileId = profile["id"].ToString();
                        }
                        catch { }
                        try
                        {
                            objFacebookFeed.Id = MongoDB.Bson.ObjectId.GenerateNewId();
                        }
                        catch { }
                        objFacebookFeed.FromProfileUrl = "http://graph.facebook.com/" + result["from"]["id"] + "/picture?type=small";
                        objFacebookFeed.FromName = result["from"]["name"].ToString();
                        objFacebookFeed.FromId = result["from"]["id"].ToString();
                        objFacebookFeed.FeedId = result["id"].ToString();
                        objFacebookFeed.FeedDate = DateTime.Parse(result["created_time"].ToString()).ToString("yyyy/MM/dd HH:mm:ss");
                        objFacebookFeed.FbComment = "http://graph.facebook.com/" + result["id"] + "/comments";
                        objFacebookFeed.FbLike = "http://graph.facebook.com/" + result["id"] + "/likes";

                        try
                        {
                            objFacebookFeed.Picture = result["picture"].ToString();
                        }
                        catch { }

                        string message = string.Empty;
                        int lstfbcount = 0;

                        if (lstfbcount < 25)
                        {
                            try
                            {
                                if (result["message"] != null)
                                {
                                    message = result["message"];
                                    lstfbcount++;

                                }
                            }
                            catch (Exception ex)
                            {
                                try
                                {
                                    if (result["description"] != null)
                                    {
                                        message = result["description"];
                                        lstfbcount++;

                                    }
                                }
                                catch (Exception exx)
                                {
                                    try
                                    {
                                        if (result["story"] != null)
                                        {
                                            message = result["story"];
                                            lstfbcount++;
                                        }
                                    }
                                    catch (Exception exxx)
                                    {
                                        message = string.Empty;
                                    }
                                }
                            }
                        }
                        if (message == null)
                        {
                            message = "";
                        }
                        objFacebookFeed.FeedDescription = message;
                        objFacebookFeed.EntryDate = DateTime.UtcNow.ToString("yyyy/MM/dd HH:mm:ss");

                        MongoRepository mongorepo = new MongoRepository("MongoFacebookFeed");
                        mongorepo.Add<MongoFacebookFeed>(objFacebookFeed);

                        AddFbPostComments(objFacebookFeed.FeedId, fb, UserId);
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);
            }

            return lstFacebookFeeds;
        }