Example #1
0
        public async Task <CommandResult> HistoryAsync(SocketGuildUser u, bool onlyActive = false, [IsntActionType(ActionType.None)] ActionType type = default)
        {
            try
            {
                var dbGuild = await _databaseService.GetOrCreateGuildAsync(Context.Guild);

                var history = type == default ? dbGuild.Cases.Where(x => x.TargetId == u.Id) : dbGuild.Cases.Where(x => x.TargetId == u.Id && x.ActionType == type);
                history = onlyActive ? history.Where(x => !x.Resolved) : history;

                Console.WriteLine("aaa");

                if (!history.Any())
                {
                    return(new QuiccbanFailResult(string.Format(_responseService.Get("history_no_cases"), u.ToString(), u.Mention, onlyActive ? "active " : "")));
                }


                Console.WriteLine("bbb");

                List <Embed> embeds          = new List <Embed>();
                var          historyGrouping = history.OrderByDescending(x => x.Id).Select((@case, index) => new { Case = @case, Index = index }).GroupBy(x => x.Index / 5, x => x.Case);

                foreach (var group in historyGrouping)
                {
                    embeds.Add(await _helperService.ConstructHistoryEmbedAsync(group, u));
                }

                if (embeds.Count > 1)
                {
                    var paginatedMessage = new PaginatedMessage {
                        Pages = embeds
                    };

                    var criterion = new Criteria <SocketReaction>();
                    criterion.AddCriterion(new EnsureReactionFromSourceUserCriterion());

                    await _interactiveService.SendPaginatedMessageAsync(Context, paginatedMessage, criterion);
                }
                else
                {
                    await ReplyAsync(embed : embeds.FirstOrDefault());
                }

                return(new QuiccbanSuccessResult());
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(new QuiccbanSuccessResult());
            }
        }
Example #2
0
            public async Task <CommandResult> SetAutomod(bool value)
            {
                var g = await _databaseService.GetOrCreateGuildAsync(Context.Guild);

                if (value == g.AutoMod.Enabled)
                {
                    return(new QuiccbanFailResult(string.Format(_responseService.Get("automod_update_already_same"), value ? "Enabled" : "Disabled")));
                }

                g.AutoMod.Enabled = value;

                await _databaseService.UpdateGuildAsync(g);

                return(new QuiccbanSuccessResult(string.Format(_responseService.Get("automod_update_success"), value ? "Enabled" : "Disabled")));
            }
Example #3
0
        //Меню для таблиці Response
        static void ResponseMenu(int Id, int idUser, int goodId)
        {
            ResponseService responseService = new ResponseService();

            responseService.Get(Id);

            if (idUser == 1)
            {
                while (true)
                {
                    Console.WriteLine("What do you want to do next?");
                    Console.WriteLine("1 - search\n 2 - sort\n 3 - return to goods");

                    int responseNumber = responseService.GetResponce();
                    Console.Clear();

                    if (responseNumber == 1)
                    {
                        responseService.SearchResponse();
                        break;
                    }
                    else if (responseNumber == 2)
                    {
                        responseService.SortResponse();
                        break;
                    }
                    else if (responseNumber == 3)
                    {
                        break;
                    }
                    else
                    {
                        Console.WriteLine("You have entered wrong number please enter again");
                    }
                    Console.Clear();
                }
            }
            else
            {
                while (true)
                {
                    Console.WriteLine("What do you want to do next?");
                    Console.WriteLine("1 - add\n 2 - change\n 3 - delete\n 4 - return to good");
                    int responseNumber = responseService.GetResponce();
                    Console.Clear();

                    if (responseNumber == 1)
                    {
                        Console.WriteLine("Enter response: ");
                        string responseName = Console.ReadLine();
                        responseService.Create(idUser, goodId, responseName);
                        responseService.Save();
                        break;
                    }
                    else if (responseNumber == 2)
                    {
                        responseService.Get(idUser);
                        Console.WriteLine("Please enter id of response which you want to change");
                        int responseId = CheckNumber();
                        Console.WriteLine("Enter new response : ");
                        string name = Console.ReadLine();
                        responseService.Change(responseId, name);
                        Console.Clear();
                        break;
                    }
                    else if (responseNumber == 3)
                    {
                        responseService.Get(idUser);
                        Console.WriteLine("Please enter id of response which you want to delete");
                        int responseId = CheckNumber();
                        responseService.Delete(responseId);
                        Console.Clear();
                        break;
                    }
                    else if (responseNumber == 4)
                    {
                        break;
                    }
                    else
                    {
                        Console.WriteLine("You have entered wrong number please enter again");
                        Console.Clear();
                    }
                }
            }
        }
Example #4
0
        public async Task <CommandResult> SetReasonAsync(Case @case, [Remainder] string reason)
        {
            if (@case.IssuerId != Context.User.Id)
            {
                return(new QuiccbanFailResult(_responseService.Get("isnt_case_owner")));
            }

            @case.Reason = reason;

            try
            {
                await _databaseService.UpdateCaseAsync(@case, true);

                await _caseHandlingService.UpdateDiscordMessage(@case);
            }
            catch (InvalidOperationException ex)
            {
                return(new QuiccbanFailResult(ex.Message));
            }

            return(new QuiccbanSuccessResult(string.Format(_responseService.Get("reason_success"), @case.Id)));
        }