Beispiel #1
0
        private async Task ProcessLiveImages()
        {
            var start = DateTime.UtcNow;

            Log.Message(LogLevel.Info, "[ProcessLiveImages] - Processing Game Images");
            using (var context = DataContextFactory.CreateReadOnlyContext())
            {
                try
                {
                    var pixelGames = await context.Games
                                     .Where(x => x.Status != Enums.GameStatus.Deleted && x.Status != Enums.GameStatus.Finished)
                                     .ToListAsync();

                    foreach (var pixelGame in pixelGames)
                    {
                        var gamePixels = (await PixelCache.GetPixels(pixelGame.Id))
                                         .Select(x => new RenderPixelModel
                        {
                            X     = x.X,
                            Y     = x.Y,
                            Type  = x.Type,
                            Color = x.Color
                        }).ToList();

                        var fixedPixels = gamePixels.Where(x => x.Type == PixelType.Fixed).ToList();
                        RenderPixels(pixelGame, gamePixels, "background");
                        RenderPixels(pixelGame, fixedPixels, "background-fixed", true);
                    }
                    Log.Message(LogLevel.Info, $"[ProcessLiveImages] - Processing Game Images complete, Elapsed: {DateTime.UtcNow - start}ms");
                }
                catch (Exception ex)
                {
                    Log.Exception("[ProcessLiveImages] - Exception Processing Game Images", ex);
                }
            }
        }