Example #1
0
        public void SyncGameClips()
        {
            // get all xbox users that haven't been sync'ed in the last hour.
            var xboxUsers = xboxUserService.GetXboxUsers().Where(x => x.ActivitiesLastSyncedAtt < DateTime.UtcNow.AddMinutes(-5));

            foreach (var xboxUser in xboxUsers)
            {
                var apiXboxUserGameClips = xboxApi.GetUserGameClips(xboxUser.XboxUserID);
                var xboxUserGameClips    = gameClipService.GetXboxUserGameClips(xboxUser.XboxUserID);

                foreach (var gameClip in apiXboxUserGameClips)
                {
                    var xboxUserGameClip = xboxUserGameClips.Where(x => x.XblID == gameClip.gameClipId).FirstOrDefault();

                    if (xboxUserGameClip != null)
                    {
                        xboxUserGameClip.State         = gameClip.state;
                        xboxUserGameClip.DatePublished = gameClip.datePublished;
                        gameClipService.UpdateGameClip(xboxUserGameClip);
                    }
                    else
                    {
                        gameClipService.CreateGameClip(new GameClip()
                        {
                            XblID         = gameClip.gameClipId,
                            DateRecorded  = gameClip.dateRecorded,
                            DatePublished = gameClip.datePublished,
                            ClipUris      = gameClip.gameClipUris.Select(x => new GameClipUri()
                            {
                                Uri        = x.uri,
                                UriType    = x.uriType,
                                Expiration = x.expiration,
                                FileSize   = x.fileSize
                            }).ToList(),
                            Thumbnails = gameClip.thumbnails.Select(x => new GameClipThumbnail()
                            {
                                Uri           = x.uri,
                                FileSize      = x.fileSize,
                                ThumbnailType = x.thumbnailType
                            }).ToList(),
                            XboxUserID = xboxUser.XboxUserID,
                            XboxUser   = xboxUser,
                            TitleName  = gameClip.titleName,
                            DeviceType = gameClip.deviceType,
                            State      = gameClip.state
                        });
                    }
                }

                gameClipService.Save();
            }
        }