Ejemplo n.º 1
0
        /// <summary>
        /// 添加日志(余额变动)
        /// </summary>
        /// <param name="log"></param>
        internal void AddRecord(long OperateId, long?OperateSubId, string OperateName, long BalanceType, string session = null, ToServerService toServer = null, string model = null, bool ForceBalanceChange = false)
        {
            Log    log    = new Log();
            Client client = Resources.GetRes().Services.Where(x => x.SessionId == session).FirstOrDefault();

            if (null != client)
            {
                log.AdminId  = client.AdminId;
                log.DeviceId = client.DeviceId;
            }


            if (null != toServer)
            {
                // 复制SessionId序列化后再恢复是因为, 序列化中不需要包括它, 节省数据库空间, 恢复它是为了防止它变空以后后续操作(如推送通知需要sessionId)收到影响
                string sessionId = toServer.SessionId;
                toServer.SessionId = null;
                model = JsonConvert.SerializeObject(toServer);
                toServer.SessionId = sessionId;
            }

            log.OperateId    = OperateId;
            log.OperateSubId = OperateSubId;
            log.OperateName  = OperateName;
            log.BalanceType  = BalanceType;

            double currentHash = RefreshBalanceHash(false);

            if (currentHash != LastBalanceHash || ForceBalanceChange)
            {
                log.IsBalanceChange = 1;
                log.Balance         = JsonConvert.SerializeObject(Resources.GetRes().BALANCES.ToList().Select(x =>
                {
                    return(x.FastCopy().ReChangeBalance());
                }).ToList());
                LastBalanceHash = currentHash;
            }

            log.AddTime = long.Parse(DateTime.Now.ToString("yyyyMMddHHmmss"));

            if (null != model)
            {
                log.Model = model;
            }

            lock (AccessLogs)
            {
                AccessLogs.Add(log);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 添加日志
        /// </summary>
        /// <param name="log"></param>
        internal void AddRecord(long OperateId, long?OperateSubId, string OperateName, string session = null, ToServerService toServer = null, string model = null)
        {
            Log    log    = new Log();
            Client client = Resources.GetRes().Services.Where(x => x.SessionId == session).FirstOrDefault();

            if (null != client)
            {
                log.AdminId  = client.AdminId;
                log.DeviceId = client.DeviceId;
            }

            if (null != toServer)
            {
                // 复制SessionId序列化后再恢复是因为, 序列化中不需要包括它, 节省数据库空间, 恢复它是为了防止它变空以后后续操作(如推送通知需要sessionId)收到影响
                string sessionId = toServer.SessionId;
                toServer.SessionId = null;
                model = JsonConvert.SerializeObject(toServer);
                toServer.SessionId = sessionId;
            }

            log.OperateId    = OperateId;
            log.OperateSubId = OperateSubId;
            log.OperateName  = OperateName;

            log.AddTime = long.Parse(DateTime.Now.ToString("yyyyMMddHHmmss"));

            if (null != model)
            {
                log.Model = model;
            }


            lock (AccessLogs)
            {
                AccessLogs.Add(log);
            }
        }