private void UpdateNotConnected(BkGame bkGame) { var existBkGame = _freeBkGameList.Get(eg => eg.BkGame.EventName == bkGame.EventName && bkGame.Bookmaker == eg.BkGame.Bookmaker); var existsOtherBkGames = GamesComparer.FindBkGames(bkGame, _freeBkGameList.Get()) .Where(fg => fg.BkGame.Bookmaker != bkGame.Bookmaker) .ToArray(); if (existsOtherBkGames.Any()) { var game = new Game(bkGame.Group); game.AddBkGame(bkGame); foreach (var existsOtherBkGame in existsOtherBkGames) { game.AddBkGame(existsOtherBkGame); } _gameList.Add(game); var ids = GamesComparer .FindBkGames(bkGame, _freeBkGameList.Get()) .Select(g => g.Id); _freeBkGameList.Remove(decorator => ids.Contains(decorator.Id)); } else if (existBkGame == null) { _freeBkGameList.Add(new BkGameDecorator(bkGame)); } else { existBkGame.Update(bkGame); } }
public T GetNew(string name = "default") { var result = Factory.Create(name); AsyncList.Add(result); return(result); }