예제 #1
0
            public async Task LevelGuildData(LevelGuildData data)
            {
                var value = 0d;
                var gc    = uow.GuildConfigs.For(Context.Guild.Id);

                switch (data)
                {
                case Common.LevelGuildData.TurnToXpMultiplier:
                    value = gc.TurnToXpMultiplier;
                    break;

                case Common.LevelGuildData.MessageXpCharCountMin:
                    value = gc.MessageXpCharCountMin;
                    break;

                case Common.LevelGuildData.MessageXpCharCountMax:
                    value = gc.MessageXpCharCountMax;
                    break;

                case Common.LevelGuildData.MessageXpTimeDifference:
                    value = gc.MessageXpTimeDifference;
                    break;
                }

                await ConfirmLocalized("levelguilddata", data.ToString(), value).ConfigureAwait(false);
            }
예제 #2
0
            public async Task LevelGuildData(LevelGuildData data, double value)
            {
                var previous = 0d;

                using (var uow = _db.UnitOfWork)
                {
                    var gc = uow.GuildConfigs.For(Context.Guild.Id, set => set);
                    switch (data)
                    {
                    case Common.LevelGuildData.TurnToXpMultiplier:
                        previous = gc.TurnToXpMultiplier;
                        gc.TurnToXpMultiplier = value;
                        break;

                    case Common.LevelGuildData.MessageXpCharCountMin:
                        previous = gc.MessageXpCharCountMin;
                        gc.MessageXpCharCountMin = (int)value;
                        break;

                    case Common.LevelGuildData.MessageXpCharCountMax:
                        previous = gc.MessageXpCharCountMax;
                        gc.MessageXpCharCountMax = (int)value;
                        break;

                    case Common.LevelGuildData.MessageXpTimeDifference:
                        previous = gc.MessageXpTimeDifference;
                        gc.MessageXpTimeDifference = value;
                        break;
                    }

                    uow.GuildConfigs.Update(gc);
                    await uow.CompleteAsync().ConfigureAwait(false);
                }

                var round = data == Common.LevelGuildData.MessageXpCharCountMax ||
                            data == Common.LevelGuildData.MessageXpCharCountMin;

                await ConfirmLocalized("levelguilddata_changed", data.ToString(), round?(int)previous : previous,
                                       round?(int)value : value).ConfigureAwait(false);
            }