Ejemplo n.º 1
0
 private List <PuzzleDataModel> GetPuzzleDataHelper(string code, PuzzleDataType type)
 {
     using (IDbConnection connection = new SQLiteConnection(ConfigurationString))
     {
         var output = connection.Query <PuzzleDataModel>("SELECT PuzzleCode, Type, Data " +
                                                         "FROM PUZZLEDATA " +
                                                         $"WHERE PuzzleCode='{code}' AND Type='{(int)type}'",
                                                         new DynamicParameters());
         return(output.ToList());
     }
 }
Ejemplo n.º 2
0
 public List <PuzzleData> GetAllPuzzlesData(PuzzleDataType type)
 {
     using (IDbConnection connection = new SQLiteConnection(ConfigurationString))
     {
         var output = connection.Query <PuzzleDataModel>("SELECT PuzzleCode, Type, Data " +
                                                         "FROM PUZZLEDATA " +
                                                         $"WHERE Type='{(int)type}'",
                                                         new DynamicParameters());
         return((from p in output
                 group p.Data by p.PuzzleCode into g
                 select new PuzzleData {
             Code = g.Key, Data = g.ToList()
         }).ToList());
     }
 }
Ejemplo n.º 3
0
        private async Task GetPuzzleDataAsync(IMessageChannel channel, PuzzleDataType type)
        {
            var message = Context.Message;
            await message.DeleteAsync();

            var dmChannel = await Context.User.GetOrCreateDMChannelAsync();

            if (channel == null)
            {
                var puzzles = _data.GetAllPuzzlesData(type);
                var msg     = new EmbedBuilder
                {
                    Title  = $"All {type}s",
                    Color  = Color.Blue,
                    Footer = new EmbedFooterBuilder
                    {
                        Text = $"Total: {puzzles.Count.ToString()}."
                    }
                };

                foreach (var puzzle in puzzles)
                {
                    msg.Description += $"<#{puzzle.Code}> {string.Join(", ", puzzle.Data)}\n";
                }

                await dmChannel.SendMessageAsync(embed : msg.Build());

                await dmChannel.CloseAsync();

                return;
            }

            var code = channel.Id.ToString();
            var data = _data.GetPuzzleData(code, type);

            if (data.Any())
            {
                await dmChannel.SendMessageAsync($"{type}: <#{code}> {string.Join(", ", data)}");
            }

            await dmChannel.CloseAsync();
        }
Ejemplo n.º 4
0
        private async Task SetPuzzleDataAsync(IMessageChannel channel, string content, PuzzleDataType type)
        {
            var message = Context.Message;
            await message.DeleteAsync();

            string code = channel.Id.ToString();

            var puzzle = new PuzzleDataModel
            {
                PuzzleCode = code,
                Type       = type,
                Data       = content
            };

            await _actions.AddPuzzleDataAsync(puzzle);

            await _logger.LogAsync(new LogMessage(LogSeverity.Debug, "Bot", $"Added answer: {code} = {content}"));

            await ReplyAsync($"Added {type} to problem <#{code}>.");
        }
Ejemplo n.º 5
0
 public List <string> GetPuzzleData(string code, PuzzleDataType type)
 {
     return(GetPuzzleDataHelper(code, type).Select(p => p.Data).ToList());
 }