Exemplo n.º 1
0
        public void Fill(BannedUser bannedUser)
        {
            //是全站屏蔽的
            if (bannedUser.ForumID == 0)
            {
                m_BannedInSite = true;
                if (m_BannedInSiteEndDate < bannedUser.EndDate)
                    m_BannedInSiteEndDate = bannedUser.EndDate;
            }
            //在指定的板块屏蔽
            else
            {
                m_BannedInAnyForum = true;
                if (m_BannedInAnyForumLastEndDate < bannedUser.EndDate)
                    m_BannedInAnyForumLastEndDate = bannedUser.EndDate;

                if (m_BannedInForumEndDates == null)
                {
                    m_BannedInForumEndDates = new Dictionary<int, DateTime>();
                    m_BannedInForumEndDates.Add(bannedUser.ForumID, bannedUser.EndDate);
                }
                else
                {
                    DateTime endDate;
                    if (m_BannedInForumEndDates.TryGetValue(bannedUser.ForumID, out endDate))
                    {
                        if (endDate < bannedUser.EndDate)
                            m_BannedInForumEndDates[bannedUser.ForumID] = bannedUser.EndDate;
                    }
                }
            }
        }
Exemplo n.º 2
0
        // GET: Auction/BanUser
        public ActionResult BanUser(int iduser, int idpro)
        {
            dynamic emailkick = new Email("Kick");

            using (var ctx = new AuctionSiteDBEntities())
            {
                //get product
                var pro  = ctx.Products.Where(p => p.ID == idpro).FirstOrDefault();
                var user = ctx.Users.Where(u => u.ID == iduser).FirstOrDefault();
                var ban  = new BannedUser()
                {
                    IDProduct = idpro,
                    IDUser    = iduser,
                };
                //get onwer
                Auction currentowner = ctx.Auctions.Where(a => a.own == true && a.IDPro == idpro).FirstOrDefault();
                //create an email
                emailkick.To      = CurrentContext.GetCurUser().Email;
                emailkick.Name    = user.Name;
                emailkick.ProName = pro.Name;
                emailkick.Send();
                ctx.BannedUsers.Add(ban);
                ctx.SaveChanges();
                //check if we dont kick the onwer
                if (currentowner.IDUser != user.ID)
                {
                    return(RedirectToAction("SettedBid", "Auction", new { id = idpro }));
                }
            }
            using (var update = new AuctionSiteDBEntities())
            {
                var currentowner = update.Auctions.Where(a => a.own == true && a.IDPro == idpro).FirstOrDefault();
                currentowner.own = false;
                var secondMax = update.Auctions.OrderByDescending(a => a.MaxPrice)
                                .Where(p => p.IDPro == idpro)
                                .Skip(1).FirstOrDefault();
                //more than 1 price setting
                if (secondMax != null)
                {
                    secondMax.own = true;
                    //udpate maxprice of product
                    Product pro = update.Products.Where(p => p.ID == idpro).FirstOrDefault <Product>();
                    pro.PriceDisplay = secondMax.MaxPrice;
                    pro.lastuser     = secondMax.IDUser;
                    update.SaveChanges();
                }
                //if we just have 1 setting price for this product then second will be turnned into null
                else
                {
                    //udpate maxprice of product
                    Product pro = update.Products.Where(p => p.ID == idpro).FirstOrDefault <Product>();
                    pro.PriceDisplay = pro.StartPrice;
                    pro.lastuser     = null;
                    update.SaveChanges();
                }
            }
            return(RedirectToAction("SettedBid", "Auction", new { id = idpro }));
        }
Exemplo n.º 3
0
        public IActionResult OnPostUnban(string email)
        {
            BannedUser bannedUser = new BannedUser();

            bannedUser.BannedEmail = email;
            _reportService.DeleteBan(bannedUser);
            AllBannedUsers = _reportService.BannedUsers();
            ProfilePicture = _iPicture.GetProfilePicture(userID);
            return(Page());
        }
Exemplo n.º 4
0
        public IActionResult OnPostBan(string email, int id)
        {
            BannedUser bannedUser = new BannedUser();

            bannedUser.BannedEmail = email;
            _reportService.AddBan(bannedUser);
            _userService.DeleteUser(id);
            AllReports     = _reportService.ReportedUsers();
            ProfilePicture = _iPicture.GetProfilePicture(userID);
            return(Page());
        }
Exemplo n.º 5
0
        private async Task CreateBannedUserAsync(User user)
        {
            var bannedUser = new BannedUser()
            {
                UserId    = user.Id,
                StartDate = DateTime.Today,
                EndDate   = DateTime.Today.AddDays(30)
                            //Description = ...
            };

            _context.BannedUsers.Add(bannedUser);
            await _context.SaveChangesAsync().ConfigureAwait(false);
        }
Exemplo n.º 6
0
        /// <summary>
        /// 取得某用户的所有被屏蔽的版块信息
        /// </summary>
        /// <param name="userID"></param>
        /// <returns></returns>
        public static BannedUserCollection GetUserBannedForumInfo(int userID)
        {
            BannedUserCollection banned = new BannedUserCollection();

            if (UserBannedForums.ContainsKey(userID))
            {
                List <int> bannedForumids = UserBannedForums[userID];
                foreach (int id in bannedForumids)
                {
                    long       key = GetKey(userID, id);
                    BannedUser b   = AllBannedUsers.GetValue(key);
                    if (b != null)
                    {
                        banned.Add(b);
                    }
                }
            }
            return(banned);
        }
Exemplo n.º 7
0
        private Task Client_MessageCreated(DSharpPlus.EventArgs.MessageCreateEventArgs e)
        {
            if (BannedUser.IsBan(e.Author.Id))
            {
                e.Message.RespondAsync("Sorry but you are banned");
                return(Task.Delay(0));
            }
            //Lua Callback
            var table = MoonSharp.Interpreter.DynValue.NewPrimeTable();

            foreach (var item in e.Message.Content.Split(' '))
            {
                table.Table.Append(MoonSharp.Interpreter.DynValue.NewString(item));
            }
            Lua.Userdatas.AsayoLuaEvent.CallOnMessage(table, MoonSharp.Interpreter.UserData.Create(new Lua.Userdatas._DSharpPlus.MessageArgsObject(e)));

            CommandManager.Call(CommandManager.CreateContext(e));//Command manager call

            return(Task.Delay(0));
        }
Exemplo n.º 8
0
 /// <summary>
 /// Configures model creation
 /// </summary>
 /// <param name="modelBuilder">modelBuilder to configure Model Creation</param>
 protected override void OnModelCreating(ModelBuilder modelBuilder)
 {
     User.Configure(modelBuilder);
     Phone.Configure(modelBuilder);
     Address.Configure(modelBuilder);
     UserAddress.Configure(modelBuilder);
     Role.Configure(modelBuilder);
     Organization.Configure(modelBuilder);
     OrgAddress.Configure(modelBuilder);
     ExternalContact.Configure(modelBuilder);
     Membership.Configure(modelBuilder);
     Currency.Configure(modelBuilder);
     BankAccount.Configure(modelBuilder);
     OrgAccount.Configure(modelBuilder);
     Balance.Configure(modelBuilder);
     Target.Configure(modelBuilder);
     FinOp.Configure(modelBuilder);
     Tag.Configure(modelBuilder);
     TagFinOp.Configure(modelBuilder);
     Event.Configure(modelBuilder);
     EventImage.Configure(modelBuilder);
     Complaint.Configure(modelBuilder);
     GoodsType.Configure(modelBuilder);
     GoodsCategory.Configure(modelBuilder);
     OfferedItem.Configure(modelBuilder);
     RequestedItem.Configure(modelBuilder);
     BankImport.Configure(modelBuilder);
     BankImportDetail.Configure(modelBuilder);
     PasswordReset.Configure(modelBuilder);
     BannedUser.Configure(modelBuilder);
     BannedOrganization.Configure(modelBuilder);
     SubscribeOrganization.Configure(modelBuilder);
     Status.Configure(modelBuilder);
     OfferedItemImage.Configure(modelBuilder);
     RequestedItemImage.Configure(modelBuilder);
     UserResponse.Configure(modelBuilder);
     OrganizationResponse.Configure(modelBuilder);
     Donation.Configure(modelBuilder);
     Bank.Configure(modelBuilder);
     AutoImportIntervals.Configure(modelBuilder);
 }
Exemplo n.º 9
0
        public static bool IsBannedUser(string alias)
        {
            if (alias == null)
            {
                throw new ArgumentNullException("alias");
            }

            try {
                alias = alias.Trim().ToLower();
                if (string.IsNullOrEmpty(alias))
                {
                    return(false); // Don't ban for blank inputs
                }
                string BannedUsersFileName = StringUtils.PathCombine(ProcessUtils.StartupPath, "config", "banned-users.txt");
                if (File.Exists(BannedUsersFileName))
                {
                    string[] BannedUsers = FileUtils.FileReadAllLines(BannedUsersFileName);
                    foreach (string BannedUser in BannedUsers)
                    {
                        if (BannedUser.StartsWith(";"))
                        {
                            continue;
                        }

                        if (BannedUser.Trim().ToLower() == alias)
                        {
                            return(true);
                        }
                    }
                }
            } catch (Exception ex) {
                RMLog.Exception(ex, "Unable to validate alias against banned-users.txt");
            }

            // If we get here, it's an OK name
            return(false);
        }
Exemplo n.º 10
0
        public static void BanUser(long discordId = 0, long osuId = 0, long guildId = 0, string reason = null)
        {
            using DBContext c = new DBContext();
            List <BannedUser> bans = GetBansForUser(discordId, osuId, guildId);

            if (bans.Count == 0)
            {
                c.BannedUser.Add(new BannedUser(osuId, discordId, guildId, reason));
                c.SaveChanges();
                return;
            }

            BannedUser user = bans.FirstOrDefault(u => (discordId > 0 ? discordId == u.DiscordUserId : true) &&
                                                  (osuId > 0 ? osuId == u.OsuUserId : true) &&
                                                  (guildId > 0 ? guildId == u.DiscordGuildId : true));

            if (user != null)
            {
                return;
            }

            c.BannedUser.Add(new BannedUser(discordId, osuId, guildId, reason));
            c.SaveChanges();
        }
Exemplo n.º 11
0
 /// <summary>
 /// Bans user
 /// </summary>
 /// <param name="user">User to ban</param>
 /// <returns>Banned User</returns>
 public void BanUser(BannedUser user)
 {
     context.BannedUsers.Add(user);
 }
Exemplo n.º 12
0
        public async Task EndBanroulette()
        {
            var banroulette = BanrouletteDb.GetBanroulette(Context.Channel.Id);

            if (banroulette == null)
            {
                await Context.Channel.SendMessageAsync(":x: There is no running Ban Roulette in this channel.");

                return;
            }

            var userIds = BanrouletteDb.GetParticipants(banroulette);

            if (userIds.Count < banroulette.MinParticipants)
            {
                await Context.Channel.SendMessageAsync($"Not enough participants! {userIds.Count}/{banroulette.MinParticipants}");

                return;
            }

            var users = BasicUtil.UserList(Context.Client, userIds);
            var user  = users[new Random().Next(users.Count)];

            var ban = new BannedUser
            {
                Active       = true,
                ServerId     = Context.Guild.Id,
                UserId       = user.Id,
                DateBanStart = DateTime.UtcNow,
                DateBanEnd   = DateTime.UtcNow.AddHours(banroulette.BanLengthHours)
            };

            string msg = $"{user.Mention} won! Bai baaaaaai! See you in {banroulette.BanLengthHours} hours!\n\n";

            users.Remove(user);
            if (users.Count > 0 && banroulette.RewardPool > 0)
            {
                int prize = banroulette.RewardPool / users.Count;
                msg += $"Prize pool of {banroulette.RewardPool} ({prize} each) split between: ";
                foreach (var x in users)
                {
                    await BalanceDb.AddToasties(x.Id, prize, Context.Guild.Id);

                    msg += x.Mention + " ";
                }
            }
            await Context.Channel.SendMessageAsync(msg);

            await user.SendMessageAsync($"You won the ban roulette! You are banned from **{Context.Guild.Name}** for {banroulette.BanLengthHours} hours! Bai baaaai!");

            await BanrouletteDb.EndBanroulette(banroulette.Id);

            if (banroulette.BanLengthHours > 0)
            {
                await BanDb.AddBan(ban);

                try
                {
                    await Context.Guild.AddBanAsync(user, 0, $"Banroulette {banroulette.Id}, {banroulette.BanLengthHours} hours.");
                } catch { }
                {
                    await Context.Channel.SendMessageAsync($"I couldn't ban {user}, they are too powerful. *Wipes off blood.* This usually means that their role is higher than mine.");
                }
            }
        }