Пример #1
0
        private CurrencyUserModel GetCurrencyInfo(string user, string channel)
        {
            user = user.ToLower();
            var currencyInfo = _database.Table<CurrencyUserModel>().FirstOrDefault(u => u.ChannelName.Equals(channel) && u.NickName.Equals(user.ToLower()));

            if (currencyInfo == null)
            {
                currencyInfo = new CurrencyUserModel
                {
                    UsedCurrency = 0,
                    TotalCurrency = 0,
                    NickName = user,
                    ChannelName = channel
                };
                _database.Insert(currencyInfo);
            }

            return currencyInfo;
        }
Пример #2
0
        private void _timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            foreach (var channel in _onlineChannelsList)
            {
                _logger.Write($"Updating loyalty currency for channel {channel}");

                var channelInfo = _config.Channels.FirstOrDefault(c => c.ChannelName.Equals(channel));

                foreach (var user in _ircClient.Channels[channel].Users)
                {
                    if (IsIgnored(user.Nick, channel)) continue;

                    var currencyInfo =
                        _database.Table<CurrencyUserModel>().FirstOrDefault(u => u.ChannelName.Equals(channel) && u.NickName.Equals(user.Nick));

                    if (currencyInfo == null)
                    {
                        currencyInfo = new CurrencyUserModel
                        {
                            ChannelName = channel,
                            NickName = user.Nick.ToLower(),
                            TotalCurrency = channelInfo.PointsPerMinute,
                            UsedCurrency = 0
                        };
                        _database.Insert(currencyInfo);
                    }
                    else
                    {
                        currencyInfo.TotalCurrency += channelInfo.PointsPerMinute;
                        _database.Update(currencyInfo);
                    }

                    _logger.Write($"{currencyInfo.NickName} now have {currencyInfo.AvailableAmount} {channelInfo.CurrencyName} on {channel}");
                }
            }
        }
Пример #3
0
        private void _timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            foreach (var channel in _onlineChannelsList)
            {
                _logger.Write($"Updating currency for channel {channel}");

                foreach (var user in _ircClient.Channels[channel].Users)
                {
                    var currencyInfo =
                        _database.Table<CurrencyUserModel>().FirstOrDefault(u => u.ChannelName.Equals(channel) && u.NickName.Equals(user.Nick));

                    if (currencyInfo == null)
                    {
                        currencyInfo = new CurrencyUserModel
                        {
                            ChannelName = channel,
                            NickName = user.Nick,
                            TotalCurrency = PointsPerMinute,
                            UsedCurrency = 0
                        };
                        _database.Insert(currencyInfo);
                    }
                    else
                    {
                        currencyInfo.TotalCurrency += PointsPerMinute;
                        _database.Update(currencyInfo);
                    }

                    _logger.Write($"{currencyInfo.NickName} now have {currencyInfo.TotalCurrency - currencyInfo.UsedCurrency} points on {channel}");
                }
            }
        }