public async Task OpenAsync(string userName, CancellationToken cancellationToken) { _cookieContainer = new CookieContainer(); _httpClientHandler = new HttpClientHandler { CookieContainer = _cookieContainer }; _progressMessageHandler = new ProgressMessageHandler(_httpClientHandler); _progressMessageHandler.HttpSendProgress += MessageHandler_HttpSendProgress; _client = new HttpClient(_progressMessageHandler) { Timeout = TimeSpan.FromMinutes(PackageUploadTimelimitInMinutes) }; _client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"); var token = await AuthenticateUserAsync(userName, "", cancellationToken); _login = userName; _connection = new HubConnectionBuilder() .WithUrl($"{ServerAddress}/sionline?token={token}", options => { options.AccessTokenProvider = () => Task.FromResult(Convert.ToBase64String(Encoding.UTF8.GetBytes(_login))); }) .WithAutomaticReconnect() .AddMessagePackProtocol() .Build(); _connection.Reconnecting += async e => { if (Reconnecting != null) { await Reconnecting(e); } }; _connection.Reconnected += async s => { if (Reconnected != null) { await Reconnected(s); } }; _connection.Closed += OnConnectionClosed; _connection.HandshakeTimeout = TimeSpan.FromMinutes(1); _connection.On <string, string>("Say", (user, text) => OnUI(() => Receieve?.Invoke(user, text))); _connection.On <SI.GameServer.Contract.GameInfo>("GameCreated", (gameInfo) => OnUI(() => GameCreated?.Invoke(ToSICoreGame(gameInfo)))); _connection.On <int>("GameDeleted", (gameId) => OnUI(() => GameDeleted?.Invoke(gameId))); _connection.On <SI.GameServer.Contract.GameInfo>("GameChanged", (gameInfo) => OnUI(() => GameChanged?.Invoke(ToSICoreGame(gameInfo)))); _connection.On <string>("Joined", (user) => OnUI(() => Joined?.Invoke(user))); _connection.On <string>("Leaved", (user) => OnUI(() => Leaved?.Invoke(user))); await _connection.StartAsync(cancellationToken); }
public void Handle(GameDeleted @event) { var repository = _container.Resolve <IBonusRepository>(); var game = repository.Games.SingleOrDefault(g => g.Id == @event.Id); if (game == null) { throw new RegoException(string.Format(NoGameFormatter, @event.Id)); } repository.RemoveGameContributionsForGame(@event.Id); repository.Games.Remove(game); repository.SaveChanges(); }
private void On(GameDeleted @event) { Dict.Remove(@event.ID); }
public void Consume(GameDeleted message) { _eventHandlers.Handle(message); }
public void Consume(GameDeleted message) { _gameSubscriber.Handle(message); }
public void Handle(GameDeleted @event) { AddActivityLog(AdminActivityLogCategory.Game, @event); }