예제 #1
0
 public JSBannedUser(ObjectInstance prototype, IBan user, String script)
     : base(prototype.Engine, ((ClrFunction)prototype.Engine.Global["BannedUser"]).InstancePrototype)
 {
     this.PopulateFunctions();
     this.parent     = user;
     this.ScriptName = script;
 }
        public static Task DeleteAsync(this IBan ban,
                                       IRestRequestOptions options = null, CancellationToken cancellationToken = default)
        {
            var client = ban.GetRestClient();

            return(client.DeleteBanAsync(ban.GuildId, ban.User.Id, options, cancellationToken));
        }
        /// <summary>
        /// Вычисляет валидность айбана
        /// </summary>
        /// <param name="iban">Международный банковский номер счета</param>
        /// <returns></returns>
        private int _GetCheckSum(IBan iban)
        {
            if (string.IsNullOrEmpty(iban.CheckSum))
            {
                iban.CheckSum = "00";
            }
            string input  = iban.BBan + iban.CountryCode + iban.CheckSum;
            string output = string.Empty;

            for (int i = 0; i < input.Length; i++)
            {
                if (output.Length < 9)
                {
                    output += input[i];
                }
                else
                {
                    output = (int.Parse(output) % 97).ToString() + input[i];
                }
            }

            var res = int.Parse(output) % 97;

            return(res);
        }
예제 #4
0
        /// <summary>
        /// Преобразовывает Банковский идентификационный код и код страны в числовое представление
        /// </summary>
        /// <param name="iban">Международный банковский номер счета</param>
        /// <returns></returns>
        public IBan ConvertToNumber(IBan iban)
        {
            var copied = (IBan)iban.Clone();

            copied.BBan        = ToNumber(iban.BBan);
            copied.CountryCode = ToNumber(iban.CountryCode);
            return(copied);
        }
예제 #5
0
        private void CacheBan(object key, IBan ban)
        {
            CacheInstance(key, ban);

            var userKey = KeyHelpers.CreateUserCacheKey(ban.User.ID);

            Cache(userKey, ban.User);
        }
예제 #6
0
        public EmbedBuilder ToEmbedBuilder(IBan discordBan, TimedActions?unbanAction)
        {
            var embedBuilder = new EmbedBuilder()
                               .WithAuthor(discordBan.User)
                               .WithColor(Color.Red)
                               .WithDescription(discordBan.Reason)
                               .WithFooter("Ban-Info");

            if (unbanAction is { })
예제 #7
0
        public EphemeralUser WithBanData(IBan ban)
        {
            if (ban is null)
            {
                return(this);
            }

            IsBanned = true;

            BanReason = ban.Reason;

            return(this);
        }
예제 #8
0
        public async Task UnbanAsync([Summary("The user to unban")] IUser target)
        {
            IBan bannedUsers = await Context.Guild.GetBansAsync() as IBan;

            IUser banneduser = bannedUsers.User;

            if (banneduser.Equals(target))
            {
                await Context.Guild.RemoveBanAsync(target);

                await Context.Channel.SendMessageAsync($"Unbanned user: {target}.");
            }
        }
예제 #9
0
        public void BasicRooterTest()
        {
            // Create an instance to test:
            IBan iban1 = new IBan("123456789100001987654321");

            // Define a test input and output value:
            bool expectedResult = true;

            // Run the method under test:
            bool realResult = iban1.Palindrome(iban1.IBAN);

            // Verify the result:
            Assert.AreEqual(expectedResult, realResult);
        }
예제 #10
0
        public async static Task OnUserBanned(SocketUser user, SocketGuild guild)
        {
            Logging.BannedUser(user, guild);
            try
            {
                IBan ban = guild.GetBanAsync(user) as IBan;
                await user.CreateDMChannelAsync();

                await user.SendMessageAsync($"You were banned from the Terraria Builders Community for reason: {ban.Reason} | In case of interest to appeal this ban, do this at https://terrariabuilders.com/community");

                await Task.CompletedTask;
            }
            catch
            {
                await Task.CompletedTask;
            }
            return;
        }
예제 #11
0
        public IBan Generate(string mfo, string accountNumber)
        {
            if (!ibanHelper.CheckInputData(mfo, accountNumber))
            {
                return(new IBan());
            }

            var iban = new IBan
            {
                Mfo           = mfo,
                AccountNumber = ibanHelper.CompleteAccountNumber(accountNumber)
            };

            iban.BBan     = ibanHelper.GetBBan(iban);
            iban.CheckSum = ibanCheckSum.Get(ibanHelper.ConvertToNumber(iban));
            iban.Iban     = ibanHelper.GetIban(iban);

            return(iban);
        }
예제 #12
0
        /// <summary>
        /// Конвертирует строку в обьект <see cref="IBan"/>
        /// </summary>
        /// <param name="iban"></param>
        /// <returns></returns>
        public IBan ConvertStringToIban(string iban)
        {
            if (iban.Length != StandartIbanLength)
            {
                return(new IBan());
            }

            var _iban = new IBan
            {
                CountryCode   = iban.Substring(0, 2),
                CheckSum      = iban.Substring(2, 2),
                Iban          = iban,
                Mfo           = iban.Substring(4, StandartMfoLength),
                AccountNumber = iban.Substring(4 + StandartMfoLength, StandartAccountNumberLength)
            };

            _iban.BBan = GetBBan(_iban);

            return(_iban);
        }
예제 #13
0
        /// <summary>
        /// Caches a value. Certain instance types may have specializations which cache more than one value from the
        /// instance.
        /// </summary>
        /// <param name="key">The cache key.</param>
        /// <param name="instance">The instance.</param>
        /// <typeparam name="TInstance">The instance type.</typeparam>
        public void Cache <TInstance>(object key, TInstance instance)
            where TInstance : class
        {
            Action cacheAction = instance switch
            {
                IWebhook webhook => () => CacheWebhook(key, webhook),
                ITemplate template => () => CacheTemplate(key, template),
                IIntegration integration => () => CacheIntegration(key, integration),
                IBan ban => () => CacheBan(key, ban),
                IGuildMember member => () => CacheGuildMember(key, member),
                IGuildPreview preview => () => CacheGuildPreview(key, preview),
                IGuild guild => () => CacheGuild(key, guild),
                IEmoji emoji => () => CacheEmoji(key, emoji),
                IInvite invite => () => CacheInvite(key, invite),
                IMessage message => () => CacheMessage(key, message),
                IChannel channel => () => CacheChannel(key, channel),
                _ => () => CacheInstance(key, instance)
            };

            cacheAction();
        }
예제 #14
0
 /// <summary>
 /// Возвращает комбинацию банковского кода и номера клиента
 /// </summary>
 /// <param name="iban">Международный банковский номер счета</param>
 /// <returns></returns>
 public string GetBBan(IBan iban) => iban.Mfo + iban.AccountNumber;
예제 #15
0
        public BanViewModel Adapt(IBan ban)
        {
            var result = new BanViewModel(ban.UnbanTime, ban.PlayerName, ban.CreatorName, ban.DurationInSeconds, ban.Reason, ban.PlayerId);

            return(result);
        }
예제 #16
0
 public bool Check(IBan iban) => _GetCheckSum(iban) == 1;
예제 #17
0
 public string Get(IBan iban) => (98 - _GetCheckSum(iban)).ToString("00");
예제 #18
0
 /// <summary>
 /// Возвращает Международный банковский номер счета
 /// </summary>
 /// <param name="iban">Международный банковский номер счета</param>
 /// <returns></returns>
 public string GetIban(IBan iban) => iban.CountryCode + iban.CheckSum + iban.BBan;
 public static string GetString(this IBan ban)
 => $"{ban.User.Tag}: {ban.Reason}";