Exemple #1
0
        public string MoveFbMessageToMongo()
        {
            string          output    = string.Empty;
            bool            exit      = true;
            int             skip      = 0;
            MongoRepository mongorepo = new MongoRepository("FacebookMessage");

            while (exit)
            {
                List <Domain.Socioboard.Domain.FacebookMessage> fbmsgs = objFacebookMessageRepository.getAllFacebookMessagesMongo(skip);
                if (fbmsgs.Count() == 0)
                {
                    exit = false;
                }

                foreach (var item in fbmsgs)
                {
                    Domain.Socioboard.MongoDomain.FacebookMessage mfbmsg = new Domain.Socioboard.MongoDomain.FacebookMessage();
                    mfbmsg.Id             = MongoDB.Bson.ObjectId.GenerateNewId();
                    mfbmsg.EntryDate      = item.EntryDate.ToString("yyyy/MM/dd HH:mm:ss");
                    mfbmsg.FbComment      = item.FbComment;
                    mfbmsg.FbLike         = item.FbLike;
                    mfbmsg.FromId         = item.FromId;
                    mfbmsg.FromName       = item.FromName;
                    mfbmsg.FromProfileUrl = item.FromProfileUrl;
                    mfbmsg.IsArchived     = item.IsArchived.ToString();
                    mfbmsg.Message        = item.Message;
                    mfbmsg.MessageDate    = item.MessageDate.ToString("yyyy/MM/dd HH:mm:ss");
                    mfbmsg.MessageId      = item.MessageId;
                    mfbmsg.Picture        = item.Picture;
                    mfbmsg.ProfileId      = item.ProfileId;
                    mfbmsg.Type           = item.Type;
                    mfbmsg.UserId         = item.UserId.ToString();
                    mongorepo.Add <Domain.Socioboard.MongoDomain.FacebookMessage>(mfbmsg);
                }
                skip = skip + 50;
            }

            return(output);
        }
        public string MoveFbMessageToMongo() 
        {
            string output = string.Empty;
            bool exit = true;
            int skip = 0;
                    MongoRepository mongorepo = new MongoRepository("FacebookMessage");

            while(exit)
            {
                List<Domain.Socioboard.Domain.FacebookMessage> fbmsgs = objFacebookMessageRepository.getAllFacebookMessagesMongo(skip);
                if (fbmsgs.Count() == 0) 
                {
                    exit = false;
                }

                foreach (var item in fbmsgs)
                {
                    Domain.Socioboard.MongoDomain.FacebookMessage mfbmsg = new Domain.Socioboard.MongoDomain.FacebookMessage();
                    mfbmsg.Id = MongoDB.Bson.ObjectId.GenerateNewId();
                    mfbmsg.EntryDate = item.EntryDate.ToString("yyyy/MM/dd HH:mm:ss");
                    mfbmsg.FbComment = item.FbComment;
                    mfbmsg.FbLike = item.FbLike;
                    mfbmsg.FromId = item.FromId;
                    mfbmsg.FromName = item.FromName;
                    mfbmsg.FromProfileUrl = item.FromProfileUrl;
                    mfbmsg.IsArchived = item.IsArchived.ToString();
                    mfbmsg.Message = item.Message;
                    mfbmsg.MessageDate = item.MessageDate.ToString("yyyy/MM/dd HH:mm:ss");
                    mfbmsg.MessageId = item.MessageId;
                    mfbmsg.Picture = item.Picture;
                    mfbmsg.ProfileId = item.ProfileId;
                    mfbmsg.Type = item.Type;
                    mfbmsg.UserId = item.UserId.ToString();
                    mongorepo.Add<Domain.Socioboard.MongoDomain.FacebookMessage>(mfbmsg);
                }
                skip = skip + 50;
            }
          
            return output;
        }
        private void AddFacebookUserHome(string UserId, FacebookClient fb, dynamic profile)
        {
            int K = 0;

            Domain.Socioboard.MongoDomain.FacebookMessage objFacebookMessage = new Domain.Socioboard.MongoDomain.FacebookMessage();
            try
            {
                dynamic home = fb.Get("v2.0/me/home");
                if (home != null)
                {
                    int lstfbcount = 0;
                    foreach (dynamic result in home["data"])
                    {
                        string message = string.Empty;
                        string imgprof = "http://graph.facebook.com/" + result["from"]["id"] + "/picture?type=small";
                        objFacebookMessage.EntryDate = DateTime.UtcNow.ToString();
                        objFacebookMessage.MessageId = result["id"].ToString();
                        objFacebookMessage.FromId = result["from"]["id"].ToString();
                        objFacebookMessage.FromName = result["from"]["name"].ToString();
                        objFacebookMessage.FromProfileUrl = imgprof;
                        objFacebookMessage.Id = ObjectId.GenerateNewId();
                        objFacebookMessage.MessageDate = DateTime.Parse(result["created_time"].ToString()).ToString("yyyy/MM/dd HH:mm:ss");
                        objFacebookMessage.UserId =UserId;

                        try
                        {
                            objFacebookMessage.Picture = result["picture"].ToString();
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.StackTrace);
                            objFacebookMessage.Picture = null;
                        }
                        try
                        {
                            if (result["message_tags"][0] != null)
                            {
                                if (result["to"] != null)
                                {
                                    foreach (var item in result["to"]["data"])
                                    {
                                        if (result["from"] != null)
                                        {

                                            if (item["id"] != profile["id"])
                                            {
                                                if (result["from"]["id"] == profile["id"])
                                                {
                                                    objFacebookMessage.Type = "fb_tag";
                                                }
                                                else
                                                {
                                                    objFacebookMessage.Type = "fb_home";
                                                }
                                            }
                                            else
                                            {
                                                objFacebookMessage.Type = "fb_home";
                                            }
                                        }
                                    }

                                }
                                else
                                {
                                    objFacebookMessage.Type = "fb_home";

                                }
                            }
                            else
                            {
                                objFacebookMessage.Type = "fb_home";
                            }
                        }
                        catch (Exception ex)
                        {
                            objFacebookMessage.Type = "fb_home";
                            Console.WriteLine(ex.StackTrace);
                        }
                        objFacebookMessage.ProfileId = profile["id"].ToString();
                        objFacebookMessage.FbComment = "http://graph.facebook.com/" + result["id"] + "/comments";
                        dynamic likes = fb.Get("v2.0/" + result["id"].ToString() + "/likes?limit=50000000");
                        string likestatus = "likes";
                        foreach (dynamic like in likes["data"])
                        {
                            try
                            {
                                if (profile["id"].ToString() == like["id"].ToString())
                                {
                                    likestatus = "unlike";
                                    break;
                                }
                            }
                            catch (Exception ex)
                            {
                                likestatus = "likes";

                            }
                        }
                        objFacebookMessage.FbLike = likestatus;
                        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;
                                    }
                                }
                            }
                        }
                        objFacebookMessage.Message = message;

                        //if (!objFacebookMessageRepository.checkFacebookMessageExists(objFacebookMessage.MessageId))
                        //{
                            K++;
                            //objFacebookMessageRepository.addFacebookMessage(objFacebookMessage);
                            MongoRepository mongorepo = new MongoRepository("FacebookMessage");
                            mongorepo.Add<Domain.Socioboard.MongoDomain.FacebookMessage>(objFacebookMessage);
                            logger.Error("AddFacebookUserHomeCount>>>" + K);
                        //}
                    }
                }
            }
            catch (Exception ex)
            {
                Console.Write(ex.StackTrace);
                logger.Error(ex.Message);
                logger.Error(ex.StackTrace);
            }
        }
        //Added by Sumit Gupta [02-02-15]
        private void AddFacebookMessageWithPagination(string UserId, FacebookClient fb, dynamic profile)
        {
            int J = 0;
            Domain.Socioboard.MongoDomain.FacebookMessage objFacebookMessage = new Domain.Socioboard.MongoDomain.FacebookMessage();
            try
            {
                string nexturl = "v2.0/me/inbox";

                for (int i = 0; i < 50; i++)
                {
                    dynamic messages = fb.Get(nexturl);
                    if (messages != null)
                    {
                        try
                        {
                            nexturl = messages["paging"]["next"].ToString();
                            logger.Error("Facebook.asmx >> AddFacebookMessageWithPagination >> nexturl : " + nexturl);
                        }
                        catch (Exception ex)
                        {
                            logger.Error(ex.Message);
                            logger.Error(ex.StackTrace);
                        }

                        foreach (dynamic result in messages["data"])
                        {
                            try
                            {
                                foreach (dynamic message in result["comments"]["data"])
                                {
                                    objFacebookMessage.MessageId = message["id"];
                                    objFacebookMessage.FromName = message["from"]["name"];
                                    objFacebookMessage.FromId = message["from"]["id"];
                                    objFacebookMessage.Message = message["message"];
                                    objFacebookMessage.MessageDate = DateTime.Parse(message["created_time"].ToString()).ToString("yyyy/MM/dd HH:mm:ss");
                                    objFacebookMessage.FromProfileUrl = "http://graph.facebook.com/" + message["from"]["id"] + "/picture?type=small";
                                    objFacebookMessage.EntryDate = DateTime.UtcNow.ToString("yyyy/MM/dd HH:mm:ss");
                                    objFacebookMessage.Id = ObjectId.GenerateNewId();
                                    objFacebookMessage.ProfileId = profile["id"].ToString();
                                    objFacebookMessage.Type = "inbox_message";
                                    objFacebookMessage.UserId = UserId;
                                    //if (!objFacebookMessageRepository.checkFacebookMessageExists(objFacebookMessage.MessageId))
                                    //{
                                        J++;
                                      //  objFacebookMessageRepository.addFacebookMessage(objFacebookMessage);
                                        MongoRepository mongorepo = new MongoRepository("FacebookMessage");
                                        mongorepo.Add<Domain.Socioboard.MongoDomain.FacebookMessage>(objFacebookMessage);
                                        logger.Error("AddFacebookMessageWithPaginationCount>>>>" + J);
                                    //}

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

                        }
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);
                logger.Error(ex.StackTrace);
                Console.WriteLine(ex.StackTrace);
            }
        }