public void SaveGameResult(BubblesGameParams bgp)
        {
            using (var context = new GameModelContainer())
            {
                var date = DateTime.Now;

                var game = context.Games.FirstOrDefault(b => b.Name == "BubblesGame");

                if (game == null)
                    return;
                
                var historyParams = new List<HistoryParam>
                {
                    new HistoryParam
                    {
                        GameParam = game.GameParams.FirstOrDefault(param => param.Name == "Appearance Frequency"),
                        Value = bgp.AppearanceFrequency.ToString(CultureInfo.InvariantCulture)
                    },
                    new HistoryParam
                    {
                        GameParam = game.GameParams.FirstOrDefault(param => param.Name == "Bubbles"),
                        Value = bgp.Bubbles.ToString(CultureInfo.InvariantCulture)
                    },
                    new HistoryParam
                    {
                        GameParam = game.GameParams.FirstOrDefault(param => param.Name == "Bubbles Size"),
                        Value = bgp.BubblesSize.ToString(CultureInfo.InvariantCulture)
                    },
                    new HistoryParam
                    {
                        GameParam = game.GameParams.FirstOrDefault(param => param.Name == "Fall Speed"),
                        Value = bgp.FallSpeed.ToString(CultureInfo.InvariantCulture)
                    },
                    new HistoryParam
                    {
                        GameParam = game.GameParams.FirstOrDefault(param => param.Name == "Level"),
                        Value = bgp.Level.ToString(CultureInfo.InvariantCulture)
                    }
                };

                var historyResults = new List<HistoryResult>
                {
                    new HistoryResult
                    {
                        GameResult = game.GameResults.FirstOrDefault(result => result.Name == "Success"),
                        Value = bgp.Success
                    },
                    new HistoryResult
                    {
                        GameResult = game.GameResults.FirstOrDefault(result => result.Name == "Time"),
                        Value = bgp.Time
                    }
                };

                var history = new History
                {
                    Game = game,
                    Date = date,
                    HistoryParams = historyParams,
                    HistoryResults = historyResults
                };

                var player = context.Players.FirstOrDefault(player1 => player1.Id == _player.Id);
                if (player != null) 
                    player.Histories.Add(history);
                context.SaveChanges();
            }
        }
        public void ExitGame()
        {
            var time = endTime - startTime;
            var gameParams = new BubblesGameParams
            {
                Success = bubblesPopped,
                Time = (int)time.TotalMilliseconds,
                Level = config.Level,
                AppearanceFrequency = config.BubblesApperanceFrequency,
                Bubbles = config.BubblesCount,
                BubblesSize = config.BubblesSize,
                FallSpeed = config.BubblesFallSpeed
            };
            var manager = new BubblesGameManager(config.Player);
            manager.SaveGameResult(gameParams);

            FallingThings.BubblesFallen = 0;
            FallingThings.BubblesPopped = 0;
            StopKinect();
            Close();
        }