Пример #1
0
        public override void Process(IDroneDataComponent dataComponent)
        {
            FacebookDataComponent fbComponent = dataComponent as FacebookDataComponent;

            if (!Object.Equals(fbComponent, null))
            {
                if (!Object.Equals(fbComponent.FBPage, null))
                {
                    SaveLikes(fbComponent.FBPage);
                }

                if (!Object.Equals(fbComponent.CountryDemographic, null))
                {
                    SaveCountryDemographics(fbComponent.CountryDemographic);
                }

                if (!Object.Equals(fbComponent.LocaleDemographic, null))
                {
                    SaveLocaleDemographics(fbComponent.LocaleDemographic);
                }

                if (!Object.Equals(fbComponent.GenderDemographic, null))
                {
                    SaveGenderDemographics(fbComponent.GenderDemographic);
                }
            }
        }
Пример #2
0
        public override void Process(IDroneDataComponent dataComponent)
        {
            FacebookDataComponent fbComponent = dataComponent as FacebookDataComponent;

            if (!Object.Equals(fbComponent, null))
            {
                if (!Object.Equals(fbComponent.FBPage, null))
                {
                    SendData(fbComponent.FBPage, "Page");
                }

                if (!Object.Equals(fbComponent.CountryDemographic, null))
                {
                    SendData(fbComponent.CountryDemographic, "Country");
                }

                if (!Object.Equals(fbComponent.LocaleDemographic, null))
                {
                    SendData(fbComponent.LocaleDemographic, "Locale");
                }

                if (!Object.Equals(fbComponent.GenderDemographic, null))
                {
                    SendData(fbComponent.GenderDemographic, "Gender");
                }
            }
        }
Пример #3
0
        internal void GetPageInfoForAllCompetitors()
        {
            WriteToUsageLogFile("FacebookFanInfo.GetData | Thread:" + Thread.CurrentThread.ManagedThreadId.ToString(), "Started GetPageInfoForAllCompetitors");

            FacebookDataSource fds = DroneDataSource as FacebookDataSource;

            if (!Object.Equals(null, fds))
            {
                foreach (Competitor item in fds.GetCompetitorAccounts())
                {
                    if (item.FacebookID != 0)
                    {
                        Page fpo = GetPageInfoByCompany(item.FacebookID);
                        if (!Object.Equals(fpo, null))
                        {
                            FacebookDataComponent fdc = new FacebookDataComponent();
                            fdc.FBPage = fpo;
                            DroneDataSource.Process(fdc);
                        }
                        else
                        {
                            Shared.Utility.WriteToLogFile(String.Format("Facebook_NoPage_{0:M_d_yyyy}", DateTime.Today) + ".log", string.Format("{0},{1}", fpo.Name, fpo.Id));
                        }
                    }
                }
            }

            WriteToUsageLogFile("FacebookFanInfo.GetData | Thread:" + Thread.CurrentThread.ManagedThreadId.ToString(), "Completed GetPageInfoForAllCompetitors");
        }
Пример #4
0
        public override void Process(IDroneDataComponent component)
        {
            FacebookDataComponent comp = component as FacebookDataComponent;

            if (!Object.Equals(comp, null))
            {
                Shared.Utility.WriteToLogFile(String.Format("Facebook_TestDataRun_{0:M_d_yyyy}", DateTime.Today) + ".log", comp.FBPage.Name + ", " + comp.FBPage.Likes + ", " + DateTime.Now);
            }
        }
Пример #5
0
        private static Demographic <Country> GetCountryDemographic()
        {
            FacebookDataComponent fdc = new FacebookDataComponent();
            FacebookFanInfo       ffi = new FacebookFanInfo(new FacebookDataSource());

            string accountId              = XMLUtility.GetTextFromAccountNode(ffi.Xml, "id");
            string accessToken            = XMLUtility.GetTextFromAccountNode(ffi.Xml, "accesstoken");
            Graph  _graph                 = new Graph();
            Demographic <Country> country = _graph.GetFanDemographics <Demographic <Country> >(accountId, accessToken, "page_fans_country");

            return(country);
        }
Пример #6
0
        public void Facebook_GetCompanyPageInfoAndSave()
        {
            Page fpo = FacebookFanInfo.GetPageInfoByCompany(8749090685);

            Assert.AreNotEqual(0, fpo.Likes);
            Assert.AreEqual("GoDaddy.com", fpo.Name);

            FacebookDataComponent fdc = new FacebookDataComponent();

            fdc.FBPage = fpo;

            FanInfo.DroneDataSource.Process(fdc);

            //Assert.IsTrue(ReadLineFromFile().Contains("GoDaddy.com"));
        }
Пример #7
0
        public void Facebook_GetFanDemographics()
        {
            FacebookDataComponent fdc = new FacebookDataComponent();
            FacebookFanInfo       ffi = new FacebookFanInfo(new FacebookTestDataSource());

            string accountId   = XMLUtility.GetTextFromAccountNode(ffi.Xml, "id");
            string accessToken = XMLUtility.GetTextFromAccountNode(ffi.Xml, "accesstoken");

            Demographic <Country> country = _graph.GetFanDemographics <Demographic <Country> >(accountId, accessToken, "page_fans_country");

            Assert.IsNotNull(country.Data);
            Assert.AreNotEqual(0, country.Data.Count);
            Assert.IsNotNull(country.Data[0].Days);
            Assert.AreNotEqual(0, country.Data[0].Days.Count);
            Assert.IsNotNull(country.Data[0].Days[0].Country);
            Assert.AreNotEqual(0, country.Data[0].Days[0].Country.US);

            fdc.CountryDemographic = country;
            FanInfo.DroneDataSource.Process(fdc);


            Demographic <Locale> locale = _graph.GetFanDemographics <Demographic <Locale> >(accountId, accessToken, "page_fans_locale");

            Assert.IsNotNull(locale.Data);
            Assert.AreNotEqual(0, locale.Data.Count);
            Assert.IsNotNull(locale.Data[0].Days);
            Assert.AreNotEqual(0, locale.Data[0].Days.Count);
            Assert.IsNotNull(locale.Data[0].Days[0].Locale);
            Assert.AreNotEqual(0, locale.Data[0].Days[0].Locale.en_US);

            fdc = new FacebookDataComponent();
            fdc.LocaleDemographic = locale;
            FanInfo.DroneDataSource.Process(fdc);


            Demographic <Gender> gender = _graph.GetFanDemographics <Demographic <Gender> >(accountId, accessToken, "page_fans_gender_age");

            Assert.IsNotNull(gender.Data);
            Assert.AreNotEqual(0, gender.Data.Count);
            Assert.IsNotNull(gender.Data[0].Days);
            Assert.AreNotEqual(0, gender.Data[0].Days.Count);
            Assert.IsNotNull(gender.Data[0].Days[0].Gender);
            Assert.AreNotEqual(0, gender.Data[0].Days[0].Gender.M_25to34);

            fdc = new FacebookDataComponent();
            fdc.GenderDemographic = gender;
            FanInfo.DroneDataSource.Process(fdc);
        }
Пример #8
0
        internal void GetFanDemographics()
        {
            WriteToUsageLogFile("FacebookFanInfo.GetData | Thread:" + Thread.CurrentThread.ManagedThreadId.ToString(), "Started GetFanDemographics");

            Graph g = new Graph();
            FacebookDataComponent fdc;
            string accountId   = XMLUtility.GetTextFromAccountNode(Xml, "id");
            string accessToken = XMLUtility.GetTextFromAccountNode(Xml, "accesstoken");

            Demographic <Country> country = g.GetFanDemographics <Demographic <Country> >(accountId, accessToken, "page_fans_country");

            if (!Object.Equals(country, null))
            {
                fdc = new FacebookDataComponent();
                fdc.CountryDemographic = country;
                DroneDataSource.Process(fdc);
            }

            Demographic <Locale> locale = g.GetFanDemographics <Demographic <Locale> >(accountId, accessToken, "page_fans_locale");

            if (!Object.Equals(locale, null))
            {
                fdc = new FacebookDataComponent();
                fdc.LocaleDemographic = locale;
                DroneDataSource.Process(fdc);
            }

            Demographic <Gender> gender = g.GetFanDemographics <Demographic <Gender> >(accountId, accessToken, "page_fans_gender_age");

            if (!Object.Equals(gender, null))
            {
                fdc = new FacebookDataComponent();
                fdc.GenderDemographic = gender;
                DroneDataSource.Process(fdc);
            }

            WriteToUsageLogFile("FacebookFanInfo.GetData | Thread:" + Thread.CurrentThread.ManagedThreadId.ToString(), "Completed GetFanDemographics");
        }
Пример #9
0
        public override void ProcessMessage(object sender, MessageEventArgs args)
        {
            bool handled = false;

            try
            {
                FacebookDataComponent dc = new FacebookDataComponent();
                string msg  = Encoding.UTF8.GetString(args.Message.BodyStream.ToByteArray());
                Page   page = Utility.DeserializeXMLString <Page>(msg);

                if (!Object.Equals(page, null))
                {
                    dc.FBPage = page;

                    handled = true;
                    FireMessageProcessingEvent();
                    QueueComponentDataSource.Process(dc);
                    FireMessageProcessedEvent();
                }
                else
                {
                    Demographic <Country> ctry = Utility.DeserializeXMLString <Demographic <Country> >(msg);
                    if (!Object.Equals(ctry, null))
                    {
                        dc.CountryDemographic = ctry;

                        handled = true;
                        FireMessageProcessingEvent();
                        QueueComponentDataSource.Process(dc);
                        FireMessageProcessedEvent();
                    }
                    else
                    {
                        Demographic <Locale> lcl = Utility.DeserializeXMLString <Demographic <Locale> >(msg);
                        if (!Object.Equals(lcl, null))
                        {
                            dc.LocaleDemographic = lcl;

                            handled = true;
                            FireMessageProcessingEvent();
                            QueueComponentDataSource.Process(dc);
                            FireMessageProcessedEvent();
                        }
                        else
                        {
                            Demographic <Gender> gndr = Utility.DeserializeXMLString <Demographic <Gender> >(msg);
                            if (!Object.Equals(gndr, null))
                            {
                                dc.GenderDemographic = gndr;

                                handled = true;
                                FireMessageProcessingEvent();
                                QueueComponentDataSource.Process(dc);
                                FireMessageProcessedEvent();
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                ExceptionExtensions.LogError(e, "QueueFacebook.ProcessMessage");

                if (Utility.IsCriticalDBError(e))
                {
                    FireShuttingDownEvent();
                }

                if (handled)
                {
                    FireMessageProcessedEvent();
                }
            }
        }