/// <FacebookInsightStats>
 /// Get all FacebookInsightStats from database by FbUserId(String).
 /// </summary>
 /// <param name="Fbuserid">FbUserId FacebookInsightStats(String).</param>
 /// <returns>Return a object of FacebookInsightStats Class with  value of each member.</returns>
 public FacebookInsightStats getInsightStatsDetails(string FbUserId)
 {
     //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())
         {
             try
             {
                 //Proceed action ,to get all FacebookInsightStats from database by FbUserId(String).
                 NHibernate.IQuery query = session.CreateQuery("from FacebookInsightStats where FbUserId = :fbuserid");
                 query.SetParameter("fbuserid", FbUserId);
                 List <FacebookInsightStats> lst = new List <FacebookInsightStats>();
                 foreach (FacebookInsightStats item in query.Enumerable())
                 {
                     lst.Add(item);
                     break;
                 }
                 FacebookInsightStats fbacc = lst[0];
                 return(fbacc);
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.StackTrace);
                 return(null);
             }
         } //End Transaction
     }     //End session
 }
示例#2
0
        public void getStories(string pageId, Guid UserId, int days)
        {
            try
            {
                string                    strStories = "https://graph.facebook.com/" + pageId + "/insights/post_stories";
                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 age in values)
                    {
                        objFbi.EntryDate    = DateTime.Now;
                        objFbi.FbUserId     = pageId;
                        objFbi.Id           = Guid.NewGuid();
                        objFbi.StoriesCount = int.Parse(age["value"].ToString());
                        objFbi.UserId       = UserId;
                        objFbi.CountDate    = age["end_time"].ToString();
                        objfbiRepo.addFacebookInsightStats(objFbi);
                    }
                }
            }
            catch (Exception Err)
            {
                Console.Write(Err.StackTrace);
            }
        }
示例#3
0
        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
 }
示例#5
0
 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 updateFacebookInsightStats(FacebookInsightStats fbaccount)
 {
     throw new NotImplementedException();
 }
示例#7
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 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);
            }
        }