Ejemplo n.º 1
0
 public static List <long> GetAllEnabledPersons()
 {
     try
     {
         using var db = new ExCacherContent(dataSource);
         return(db.CounterEnableRecord.Select(p => p.QQNum).ToList());
     }
     catch (Exception e)
     {
         RuntimeLogger.Log(e);
         return(new List <long>());
     }
 }
Ejemplo n.º 2
0
 public static long Get(long QQNum)
 {
     try
     {
         using var db = new ExCacherContent(dataSource);
         var record = db.PersonMsgCountRecord.FirstOrDefault(p => p.QQNum == QQNum);
         return(record?.Count ?? 0);
     }
     catch (Exception e)
     {
         RuntimeLogger.Log(e);
         return(0);
     }
 }
Ejemplo n.º 3
0
        public static void CleanAll()
        {
            try
            {
                using var db = new ExCacherContent(dataSource);
                var records = db.PersonMsgCountRecord.ToArray();
                db.PersonMsgCountRecord.RemoveRange(records);

                db.SaveChanges();
            }
            catch (Exception e)
            {
                RuntimeLogger.Log(e);
            }
        }
Ejemplo n.º 4
0
        public static void PersonDisable(long QQNum)
        {
            try
            {
                using var db = new ExCacherContent(dataSource);
                var record = db.CounterEnableRecord.FirstOrDefault(p => p.QQNum == QQNum);
                if (record == null)
                {
                    return;
                }

                db.CounterEnableRecord.Remove(record);
                db.SaveChanges();
            }
            catch (Exception e)
            {
                RuntimeLogger.Log(e);
            }
        }
Ejemplo n.º 5
0
        public static void Cache(long QQNum, long count = 1)
        {
            try
            {
                using var db = new ExCacherContent(dataSource);
                var record = db.PersonMsgCountRecord.FirstOrDefault(p => p.QQNum == QQNum);
                if (record == null)
                {
                    record = new PersonMsgCountRecord()
                    {
                        QQNum = QQNum, Count = count
                    };
                    db.PersonMsgCountRecord.Add(record);
                }
                else
                {
                    var todayStr = DateTime.Now.ToString("yyyyMMdd");
                    if (string.IsNullOrEmpty(record.LastDate) || record.LastDate != todayStr)
                    {
                        record.LastDate   = todayStr;
                        record.TodayCount = 0;
                    }

                    record.TodayCount ??= 0;

                    if (record.TodayCount >= DialyLimit)
                    {
                        return;
                    }

                    count              = Math.Min(count, DialyLimit - record.TodayCount ?? 0);
                    record.TodayCount += count;
                    record.Count      += count;
                }

                db.SaveChanges();
            }
            catch (Exception e)
            {
                RuntimeLogger.Log(e);
            }
        }
Ejemplo n.º 6
0
        public static void PersonEnable(long QQNum)
        {
            try
            {
                using var db = new ExCacherContent(dataSource);
                if (db.CounterEnableRecord.Any(p => p.QQNum == QQNum))
                {
                    return;
                }

                db.CounterEnableRecord.Add(new CounterEnableRecord()
                {
                    QQNum = QQNum
                });
                db.SaveChanges();
            }
            catch (Exception e)
            {
                RuntimeLogger.Log(e);
            }
        }
Ejemplo n.º 7
0
        public static void Consume(long QQNum, long count = 1)
        {
            try
            {
                using var db = new ExCacherContent(dataSource);
                var record = db.PersonMsgCountRecord.FirstOrDefault(p => p.QQNum == QQNum);
                if (record == null)
                {
                    return;
                }
                else
                {
                    record.Count = count > record.Count ? 0 : record.Count - count;
                }

                db.SaveChanges();
            }
            catch (Exception e)
            {
                RuntimeLogger.Log(e);
            }
        }