private async Task WarnUserAsync(
            CommandContext ctx,
            DiscordMember member,
            string reason,
            bool silent,
            DiscordMember issuer
            )
        {
            int?warningId = await _warningService.AddWarningAsync(member.Id, reason, issuer.Id);

            if (warningId.HasValue)
            {
                int numberOfWarnings = await _warningService.GetNumberOfWarnings(member.Id);

                try
                {
                    await ctx.Message.DeleteAsync();

                    if (silent)
                    {
                        await ctx.Channel.SendMessageAsync(
                            $"**Uživatel <@!{member.Id}> byl varován!**");
                    }
                    else
                    {
                        await ctx.Channel.SendMessageAsync(
                            $"**Varování (<@!{member.Id}>)**: {reason.RemoveDiscordMentions(ctx.Guild, _logger)}.");
                    }

                    string messageForUser =
                        $"Na *studentském FIT Discordu* v kanále _#{ctx.Channel.Name}_ vám bylo uděleno **varování**. (warning id: {warningId})" +
                        $"\n\n" +
                        $"Důvod: {reason}" +
                        "\n\n" +
                        $"Toto je vaše **{numberOfWarnings}. varování**, #beGood.";

                    await member.SendMessageAsync(messageForUser.RemoveDiscordMentions(ctx.Guild, _logger));
                }
                catch (Exception e)
                {
                    _logger.LogError(e, "Failed to announce warning");
                }
            }
            else
            {
                _logger.LogWarning("Couldn't add a warning for {Member} with {Reason}",
                                   member.RatherNicknameThanUsername(), reason);
                await ctx.Message.CreateReactionAsync(DiscordEmoji.FromName(ctx.Client, ":-1:"));
            }
        }