public void addFacebookInsightStats(FacebookInsightStats fbinsightstats)
 {
     using (NHibernate.ISession session = SessionFactory.GetNewSession())
     {
         using (NHibernate.ITransaction transaction = session.BeginTransaction())
         {
             session.Save(fbinsightstats);
             transaction.Commit();
         }
     }
 }
        public void getFanPageLikesByGenderAge(string pageId, Guid UserId, int days)
        {
            try
            {
                string strAge = "https://graph.facebook.com/" + pageId + "/insights/page_fans_gender_age";
                FacebookClient fb = new FacebookClient();
                FacebookAccountRepository fbAccRepo = new FacebookAccountRepository();
                FacebookAccount acc = fbAccRepo.getUserDetails(pageId);
                fb.AccessToken = acc.AccessToken;
                ///////////////////////////////////////////////////
                // string codedataurlgraphic = objAuthentication.RequestUrl(strAge, strToken);
                //if (txtDateSince.Text != "")
                //    strAge = strAge + "&since=" + txtDateSince.Text;
                //if (txtDateUntill.Text != "")
                //    strAge = strAge + "&until=" + txtDateUntill.Text;

                JsonObject outputreg = (JsonObject)fb.Get(strAge);
                JArray data = (JArray)JsonConvert.DeserializeObject(outputreg["data"].ToString());
                FacebookInsightStats objFbi = new FacebookInsightStats();
                FacebookInsightStatsRepository objfbiRepo = new FacebookInsightStatsRepository();
                foreach (var item in data)
                {
                    var values = item["values"];
                    foreach (var age in values)
                    {
                        var ageVal = age["value"];
                        var agevalarray = ageVal.ToString().Substring(1, ageVal.ToString().Length - 2).Split(',');
                        for (int i = 0; i < agevalarray.Count(); i++)
                        {
                            var genderagearray = agevalarray[i].Split(':');
                            var gender = genderagearray[0].Split('.');
                            objFbi.AgeDiff = gender[1].Trim();
                            objFbi.Gender = gender[0].Trim();
                            objFbi.EntryDate = DateTime.Now;
                            objFbi.FbUserId = pageId;
                            objFbi.Id = Guid.NewGuid();
                            objFbi.PeopleCount = int.Parse(genderagearray[1]);
                            objFbi.UserId = UserId;
                            objFbi.CountDate = age["end_time"].ToString();
                            if (!objfbiRepo.checkFacebookInsightStatsExists(pageId, UserId, age["end_time"].ToString(), gender[1].Trim()))
                                objfbiRepo.addFacebookInsightStats(objFbi);
                            else
                                objfbiRepo.updateFacebookInsightStats(objFbi);
                        }
                        // strFbAgeArray=strFbAgeArray+
                    }
                }
            }
            catch (Exception Err)
            {
                Console.Write(Err.StackTrace);
            }
        }
 /// <addFacebookInsightStats>
 /// Add a new FacebbokinsightStats in database.
 /// </summary>
 /// <param name="fbinsightstats">Set Values in a FacebookInsightStats Class Property and Pass the same Object of FacebookInsightStats Class.(Domain.FacebookInsightStats)</param>
 public void addFacebookInsightStats(FacebookInsightStats fbinsightstats)
 {
     //Creates a database connection and opens up a session
     using (NHibernate.ISession session = SessionFactory.GetNewSession())
     {
         //After Session creation, start Transaction.
         using (NHibernate.ITransaction transaction = session.BeginTransaction())
         {
             //Proceed action, to save data.
             session.Save(fbinsightstats);
             transaction.Commit();
         }//End Transaction
     }//End session
 }
Ejemplo n.º 4
0
 public void getPageImpresion(string pageId, Guid UserId, int days)
 {
     try
     {
         string strAge = "https://graph.facebook.com/" + pageId + "/insights/page_impressions/day";
         FacebookClient fb = new FacebookClient();
         FacebookAccountRepository fbAccRepo = new FacebookAccountRepository();
         FacebookAccount acc = fbAccRepo.getUserDetails(pageId);
         fb.AccessToken = acc.AccessToken;
         JsonObject outputreg = (JsonObject)fb.Get(strAge);
         JArray data = (JArray)JsonConvert.DeserializeObject(outputreg["data"].ToString());
         FacebookInsightStats objFbi = new FacebookInsightStats();
         FacebookInsightStatsRepository objfbiRepo = new FacebookInsightStatsRepository();
         foreach (var item in data)
         {
             var values = item["values"];
             foreach (var age in values)
             {
                 objFbi.EntryDate = DateTime.Now;
                 objFbi.FbUserId = pageId;
                 objFbi.Id = Guid.NewGuid();
                 objFbi.PageImpressionCount = int.Parse( age["value"].ToString());
                 objFbi.UserId = UserId;
                 objFbi.CountDate = age["end_time"].ToString();
                 if (!objfbiRepo.checkFbIPageImprStatsExists(pageId, UserId, age["end_time"].ToString()))
                     objfbiRepo.addFacebookInsightStats(objFbi);
                 else
                     objfbiRepo.updateFacebookInsightStats(objFbi);
             }
         }
     }
     catch (Exception Err)
     {
         Console.Write(Err.StackTrace);
     }
 }
        public void getLocation(string pageId, Guid UserId, int days)
        {
            try
            {
                string strStories = "https://graph.facebook.com/" + pageId + "/insights/page_fans_country";
                FacebookClient fb = new FacebookClient();
                FacebookAccountRepository fbAccRepo = new FacebookAccountRepository();
                FacebookAccount acc = fbAccRepo.getUserDetails(pageId);
                fb.AccessToken = acc.AccessToken;
                JsonObject outputreg = (JsonObject)fb.Get(strStories);
                JArray data = (JArray)JsonConvert.DeserializeObject(outputreg["data"].ToString());
                FacebookInsightStats objFbi = new FacebookInsightStats();
                FacebookInsightStatsRepository objfbiRepo = new FacebookInsightStatsRepository();
                foreach (var item in data)
                {
                    var values = item["values"];
                    foreach (var loc in values)
                    {
                        var locVal = loc["value"];
                        var locvalarray = locVal.ToString().Substring(1, locVal.ToString().Length - 2).Split(',');
                        for (int i = 0; i < locvalarray.Count(); i++)
                        {
                            var locationarr = locvalarray[i].Split(':');
                            objFbi.EntryDate = DateTime.Now;
                            objFbi.FbUserId = pageId;
                            objFbi.Id = Guid.NewGuid();
                            objFbi.Location = locationarr[0].ToString();
                            objFbi.PeopleCount = int.Parse(locationarr[1].ToString());
                            objFbi.UserId = UserId;
                            objFbi.CountDate = loc["end_time"].ToString();
                            if (!objfbiRepo.checkFbILocationStatsExists(pageId, UserId, loc["end_time"].ToString(), locationarr[0].ToString()))
                                objfbiRepo.addFacebookInsightStats(objFbi);
                            else
                                objfbiRepo.updateFacebookInsightStats(objFbi);
                        }

                    }
                }
            }
            catch (Exception Err)
            {
                Console.Write(Err.StackTrace);
            }
        }
        //public void getPageImpresion(string pageId, Guid UserId, int days)
        //{
        //    try
        //    {
        //        string strAge = "https://graph.facebook.com/" + pageId + "/insights/page_impressions/day";
        //        FacebookClient fb = new FacebookClient();
        //        FacebookAccountRepository fbAccRepo = new FacebookAccountRepository();
        //        FacebookAccount acc = fbAccRepo.getUserDetails(pageId);
        //        fb.AccessToken = acc.AccessToken;
        //        JsonObject outputreg = (JsonObject)fb.Get(strAge);
        //        JArray data = (JArray)JsonConvert.DeserializeObject(outputreg["data"].ToString());

        //        FacebookInsightStats objFbi = new FacebookInsightStats();
        //        FacebookInsightStatsRepository objfbiRepo = new FacebookInsightStatsRepository();
        //        foreach (var item in data)
        //        {
        //            var values = item["values"];
        //            foreach (var age in values)
        //            {
        //                objFbi.EntryDate = DateTime.Now;
        //                objFbi.FbUserId = pageId;
        //                objFbi.Id = Guid.NewGuid();
        //                objFbi.PageImpressionCount = int.Parse(age["value"].ToString());
        //                objFbi.UserId = UserId;
        //                objFbi.CountDate = age["end_time"].ToString();
        //                if (!objfbiRepo.checkFbIPageImprStatsExists(pageId, UserId, age["end_time"].ToString()))
        //                    objfbiRepo.addFacebookInsightStats(objFbi);
        //                else
        //                    objfbiRepo.updateFacebookInsightStats(objFbi);
        //            }
        //        }
        //    }
        //    catch (Exception Err)
        //    {
        //        Console.Write(Err.StackTrace);
        //    }
        //}


        public void getPageImpresion(string pageId, Guid UserId, int days)
        {
            JsonObject outputreg = new JsonObject();

            try
            {
                int count = 0;
                string nextpage = string.Empty;
                string prevpage = string.Empty;
                string strAge = string.Empty;
                if (count == 0)
                {
                    strAge = "https://graph.facebook.com/" + pageId + "/insights/page_impressions/day";
                }
                else
                {
                    strAge = prevpage;
                }
                FacebookClient fb = new FacebookClient();
                FacebookAccountRepository fbAccRepo = new FacebookAccountRepository();

                for (int i = 0; i < 11; i++)
                {
                    if (count > 0)
                    {
                        strAge = prevpage;
                    }

                    FacebookAccount acc = fbAccRepo.getUserDetails(pageId);
                    fb.AccessToken = acc.AccessToken;
                    outputreg = (JsonObject)fb.Get(strAge);
                    JArray data = (JArray)JsonConvert.DeserializeObject(outputreg["data"].ToString());
                    //code written by abhay
                    JObject data1 = (JObject)JsonConvert.DeserializeObject(outputreg["paging"].ToString());
                    if (count == 0)
                    {
                        prevpage = data1["previous"].ToString();
                        nextpage = data1["next"].ToString();
                        //End of block
                        FacebookInsightStats objFbi = new FacebookInsightStats();
                        FacebookInsightStatsRepository objfbiRepo = new FacebookInsightStatsRepository();
                        foreach (var item in data)
                        {
                            var values = item["values"];
                            foreach (var age in values)
                            {
                                //objFbi.EntryDate = DateTime.Now;
                                objFbi.EntryDate = Convert.ToDateTime(age["end_time"].ToString());
                                objFbi.FbUserId = pageId;
                                objFbi.Id = Guid.NewGuid();
                                objFbi.PageImpressionCount = int.Parse(age["value"].ToString());
                                objFbi.UserId = UserId;
                                objFbi.CountDate = age["end_time"].ToString();
                                if (!objfbiRepo.checkFbIPageImprStatsExists(pageId, UserId, age["end_time"].ToString()))
                                    objfbiRepo.addFacebookInsightStats(objFbi);
                                else
                                    objfbiRepo.updateFacebookInsightStats(objFbi);
                            }
                        }
                        count++;
                    }


                    else
                    {
                        count++;
                        prevpage = data1["previous"].ToString();
                        // nextpage = data1["next"].ToString();
                        //End of block
                        FacebookInsightStats objFbi = new FacebookInsightStats();
                        FacebookInsightStatsRepository objfbiRepo = new FacebookInsightStatsRepository();
                        foreach (var item in data)
                        {
                            var values = item["values"];
                            foreach (var age in values)
                            {
                                //objFbi.EntryDate = DateTime.Now;
                                objFbi.EntryDate = Convert.ToDateTime(age["end_time"].ToString());
                                objFbi.FbUserId = pageId;
                                objFbi.Id = Guid.NewGuid();
                                objFbi.PageImpressionCount = int.Parse(age["value"].ToString());
                                objFbi.UserId = UserId;
                                objFbi.CountDate = age["end_time"].ToString();
                                if (!objfbiRepo.checkFbIPageImprStatsExists(pageId, UserId, age["end_time"].ToString()))
                                    objfbiRepo.addFacebookInsightStats(objFbi);
                                else
                                    objfbiRepo.updateFacebookInsightStats(objFbi);
                            }
                        }
                    }

                }
                outputreg = (JsonObject)fb.Get(nextpage);
                JArray newdata = (JArray)JsonConvert.DeserializeObject(outputreg["data"].ToString());
                JObject newdata1 = (JObject)JsonConvert.DeserializeObject(outputreg["paging"].ToString());
                FacebookInsightStats objFbi1 = new FacebookInsightStats();
                FacebookInsightStatsRepository objfbiRepo1 = new FacebookInsightStatsRepository();
                foreach (var item in newdata)
                {
                    var values = item["values"];
                    foreach (var age in values)
                    {
                        //objFbi1.EntryDate = DateTime.Now;
                        objFbi1.EntryDate = Convert.ToDateTime(age["end_time"].ToString());
                        objFbi1.FbUserId = pageId;
                        objFbi1.Id = Guid.NewGuid();
                        objFbi1.PageImpressionCount = int.Parse(age["value"].ToString());
                        objFbi1.UserId = UserId;
                        objFbi1.CountDate = age["end_time"].ToString();
                        if (Convert.ToDateTime(age["end_time"].ToString()) > DateTime.Now)
                            break;
                        if (!objfbiRepo1.checkFbIPageImprStatsExists(pageId, UserId, age["end_time"].ToString()))
                            objfbiRepo1.addFacebookInsightStats(objFbi1);
                        else
                            objfbiRepo1.updateFacebookInsightStats(objFbi1);
                    }
                }

            }
            catch (Exception Err)
            {
                Console.Write(Err.StackTrace);
            }
        }
 public void updateFacebookInsightStats(FacebookInsightStats fbaccount)
 {
     throw new NotImplementedException();
 }