예제 #1
0
        /// <summary>
        /// 获取所有资源
        /// </summary>
        /// <param name="version"></param>
        public string[] GetAllFile(string projName, string version, string platform)
        {
            var root = $"{this.fileRootPath}/{projName}";

            //只保留10个版本
            var ds = Directory.GetDirectories(root);

            if (ds.Length > 10)
            {
                using (var db = new SqliteContext())
                {
                    var ab = db.AssetBundleDatas.OrderBy((adb) => adb.Version).                             //排序
                             FirstOrDefault((abd) => abd.ProjName == projName && abd.Platform == platform); //取第一个
                    //删除最小版本
                    var del = $"{root}/{ab.Version}";
                    db.Remove(ab);
                    db.SaveChanges();

                    Directory.Delete(del, true);
                }
            }

            //
            var direct = $"{root}/{version}/{platform}";

            if (Directory.Exists(direct))
            {
                var fs = Directory.GetFiles(direct, "*", SearchOption.AllDirectories);
                return(fs.Select((d) => Path.GetFileName(d)).ToArray());
            }

            return(null);
        }
예제 #2
0
        public async Task <T> Delete <T>(string id) where T : Model
        {
            var entity = await Get <T>(id);

            _context.Lock.WaitOne();
            _context.Remove(entity);
            await _context.SaveChangesAsync();

            _context.Lock.ReleaseMutex();

            return(entity);
        }
예제 #3
0
        private async Task CheckBanDatabaseOnHeartbeat(HeartbeatEventArgs e)
        {
            if (Client.Guilds.Count == 0)
            {
                return;
            }

            using (SqliteContext lite = new SqliteContext())
            {
                var          bans           = lite.Bans;
                DateTime     currentTime    = DateTime.Now;
                var          guild          = Client.Guilds.Values.FirstOrDefault(x => x.Name == "Bot Testing");
                var          members        = guild.Members.Values;
                var          roles          = guild.Roles.Values;
                var          straightJacket = roles.First(x => x.Name == "Straight Jacket");
                List <ulong> userIDs        = new List <ulong>();

                foreach (var user in bans)
                {
                    if (user.unbanTime <= currentTime)
                    {
                        userIDs.Add(user.userID);
                        lite.Remove(user);
                        await lite.SaveChangesAsync();
                    }
                }

                foreach (var member in members)
                {
                    foreach (var id in userIDs)
                    {
                        if (member.Id == id)
                        {
                            await member.RevokeRoleAsync(straightJacket);
                        }
                    }
                }
            }
        }
예제 #4
0
 public void Remove(NavLink key)
 {
     _context.Remove(key);
     _context.SaveChanges();
 }
예제 #5
0
 public void Remove(RelatedPages key)
 {
     _context.Remove(key);
     _context.SaveChanges();
 }