Пример #1
0
        public async Task UnsubscribeGame(GameSubscription gameSubscription)
        {
            await Groups.RemoveFromGroupAsync(Context.ConnectionId, $"Game-{gameSubscription.GameId}");

            _playerConnectionManager.RemovePlayerConnection(Context.ConnectionId);

            await Clients.Caller.SendAsync("Message", "Successfully Unsubscribed");
        }
Пример #2
0
        public async Task SubscribeGame(GameSubscription gameSubscription)
        {
            await Groups.AddToGroupAsync(Context.ConnectionId, $"Game-{gameSubscription.GameId}");

            _playerConnectionManager.StorePlayerConnection(gameSubscription.PlayerToken, Context.ConnectionId);

            await Clients.Caller.SendAsync("Message", "Successfully Subscribed");
        }
Пример #3
0
        public async Task AddSubscriptionAsync(string gameName, ulong guildID, ulong userID)
        {
            if (dbContext.GameSubscriptions.Any(x => x.GameName.Contains(gameName, StringComparison.OrdinalIgnoreCase) && x.GuildID == guildID && x.UserID == userID))
            {
                throw new ArgumentException("The user is already subscribed to that game");
            }
            var gameSubscription = new GameSubscription {
                GuildID = guildID, UserID = userID, GameName = gameName
            };

            dbContext.GameSubscriptions.Add(gameSubscription);
            await dbContext.SaveChangesAsync().ConfigureAwait(false);
        }
Пример #4
0
        public Task AddSubscriptionAsync(string gameName, ulong guildID, ulong userID)
        {
            if (dbContext.GameSubscriptions.Any(x => x.GameName.ToUpper().Contains(gameName.ToUpper()) && x.GuildID == guildID && x.UserID == userID))
            {
                throw new ArgumentException("The user is already subscribed to that game");
            }

            var gameSubscription = new GameSubscription {
                GuildID = guildID, UserID = userID, GameName = gameName
            };

            _ = dbContext.GameSubscriptions.Add(gameSubscription);
            return(dbContext.SaveChangesAsync());
        }
Пример #5
0
        public async Task RemoveSubscriptionAsync(string gameName, ulong guildID, ulong userID)
        {
            GameSubscription subscriptionToRemove = await dbContext.GameSubscriptions
                                                    .AsQueryable()
                                                    .FirstOrDefaultAsync(x => x.GameName.ToUpper().Contains(gameName.ToUpper()) &&
                                                                         x.GuildID == guildID &&
                                                                         x.UserID == userID)
                                                    .ConfigureAwait(false);

            if (subscriptionToRemove == null)
            {
                throw new ArgumentException("The specified subscription does not exist");
            }

            _ = dbContext.GameSubscriptions.Remove(subscriptionToRemove);
            _ = await dbContext.SaveChangesAsync().ConfigureAwait(false);
        }