Ejemplo n.º 1
0
        public string GetPost(GamervineDataContext DataContext, Job Job)
        {
            var gamertag = from gt in DataContext.Gamertags
                           where gt.TagId == Job.TagId
                           select gt;

            var latestData = from xd in DataContext.XboxData
                             where xd.TagId == Job.TagId
                             orderby xd.RetrieveDate descending
                             select xd;

            if (latestData.Count() == 0)
            {
                return(string.Empty);
            }

            string status = HandlerFactory.GetHandlerForType(gamertag.First().Type).GetStatusPost(DataContext, latestData.First(), Job.PostFormat);

            var lastPost = from ph in DataContext.PostHistories
                           where ph.TagId == Job.TagId &&
                           ph.PostType == JobTypes.Status.GetHashCode()
                           orderby ph.PostDate descending
                           select ph;

            string strLastPost = string.Empty;

            if (lastPost.Count() > 0)
            {
                strLastPost = lastPost.First().PostString;
            }

            //TODO: Move all of this logic into the XboxHandler - make generic to the handlers
            if (!latestData.First().Title.ToLower().Equals("xbox 360 dashboard") &&
                !latestData.First().Title.ToLower().Contains("xbox.com"))
            {
                if (strLastPost.Equals(string.Empty) || !status.ToLower().Equals(strLastPost.ToLower()))
                {
                    if ((strLastPost.ToLower().Contains(" is currently offline (xbox 360). last seen ") &&
                         !status.ToLower().Contains(" is currently offline (xbox 360). last seen ")) ||
                        (!strLastPost.ToLower().Contains(" is currently offline (xbox 360). last seen ") &&
                         status.ToLower().Contains(" is currently offline (xbox 360). last seen ")) ||
                        (!strLastPost.ToLower().Contains(" is currently offline (xbox 360). last seen ") &&
                         !status.ToLower().Contains(" is currently offline (xbox 360). last seen ")) ||

                        (strLastPost.ToLower().Contains(" is currently away (xbox 360). last seen ") &&
                         !status.ToLower().Contains(" is currently away (xbox 360). last seen ")) ||
                        (!strLastPost.ToLower().Contains(" is currently away (xbox 360). last seen ") &&
                         status.ToLower().Contains(" is currently away (xbox 360). last seen ")) ||
                        (!strLastPost.ToLower().Contains(" is currently away (xbox 360). last seen ") &&
                         !status.ToLower().Contains(" is currently away (xbox 360). last seen ")))
                    {
                        //Log the two statuses
                        Debug.WriteLine("Status is valid." + Environment.NewLine + "Last status: " + strLastPost + Environment.NewLine + "New status: " + status);
                        return(status);
                    }
                }
            }

            return(string.Empty);
        }
Ejemplo n.º 2
0
        private void ProcessGamertag(GamervineDataContext DataContext, Gamertag Gamertag)
        {
            XDocument xdLatestData = null;

            IDataConnector dataConnector = DataConnectorFactory.GetDataConnectorForType(Gamertag.Type);
            int            count         = 0;

            do
            {
                count++;
                xdLatestData = dataConnector.GetLatestTagData(Gamertag);
            }while (xdLatestData == null && count < 5);

            if (xdLatestData == null)
            {
                Debug.WriteLine("Unable to retrieve data from gamertag \"" + Gamertag.Tag + "\".");
                return;
            }

            IHandler dataHandler = HandlerFactory.GetHandlerForType(Gamertag.Type);

            dataHandler.ProcessData(DataContext, Gamertag, xdLatestData);

            try
            {
                DataContext.SubmitChanges();
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Exception occurred in DataService.DoWork:" + Environment.NewLine + ex.Message + Environment.NewLine + ex.StackTrace);
            }
        }
Ejemplo n.º 3
0
        public void ProcessGamertag(GamervineDataContext DataContext, Gamertag Gamertag)
        {
            IHandler dataHandler = HandlerFactory.GetHandlerForType(Gamertag.Type);

            dataHandler.ProcessSummary(DataContext, Gamertag);

            try
            {
                DataContext.SubmitChanges();
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Exception occurred in DataService.DoWork:" + Environment.NewLine + ex.Message + Environment.NewLine + ex.StackTrace);
            }
        }
Ejemplo n.º 4
0
        public string GetPost(GamervineDataContext DataContext, Job Job)
        {
            var gamertag = from gt in DataContext.Gamertags
                           where gt.TagId == Job.TagId
                           select gt;

            var summary = from s in DataContext.SummaryData
                          where s.TagId == Job.TagId
                          select s;

            string strPost = string.Empty;

            if (summary.Count() > 0)
            {
                strPost = HandlerFactory.GetHandlerForType(gamertag.First().Type).GetSummaryPost(DataContext, summary.First(), Job.PostFormat);
                strPost = strPost.Replace("[@Timeframe]", Job.GetFrequencyDisplayText());
            }

            return(strPost);
        }