Exemplo n.º 1
0
        public static ICollection <tbl_sp_troneItem> GetRowsById(Shotgun.Database.IBaseDataClass2 dBase, IEnumerable <int> ids)
        {
            if (ids.Count() == 1)
            {
                var m = GetRowById(dBase, ids.First());
                if (m == null)
                {
                    return(null);
                }
                return(new tbl_sp_troneItem[] { m });
            }

            var data = _cache.GetCacheData(true);

            if (data != null)
            {
                lock (_cache.SyncRoot)
                {
                    return((from item in data where ids.Contains(item.id) select item).ToArray());
                }
            }

            var q = LightDataModel.tbl_sp_troneItem.GetQueries(dBase);

            q.Filter.AndFilters.Add(tbl_sp_troneItem.Fields.PrimaryKey, ids);
            q.PageSize = int.MaxValue;
            var rlt = q.GetDataList();

            foreach (var item in rlt)
            {
                _cache.InsertItem(item);
            }
            return(rlt);
        }
Exemplo n.º 2
0
        public static IEnumerable <tbl_trone_orderItem> QueryByTroneIdWithCache(Shotgun.Database.IBaseDataClass2 dBase, int troneId)
        {
            IEnumerable <tbl_trone_orderItem> lst = null;
            var t = cache.GetCacheData(true);

            if (t != null)
            {
                lock (cache.SyncRoot)
                {
                    lst = from item in t where !item.disable && item.trone_id == troneId select item;
                    return(lst.ToArray());
                }
            }

#if DEBUG
            if (isWinform)
            {
                Console.WriteLine("QueryByTroneIdWithCache from database:troneId {0} ", troneId);
            }
            else
#endif
            Shotgun.Library.SimpleLogRecord.WriteLog("Cache2Sql", string.Format("QueryByTroneIdWithCache from database:troneId {0} ", troneId));

            var l = LightDataModel.tbl_trone_orderItem.GetQueries(dBase);
            l.Filter.AndFilters.Add(LightDataModel.tbl_trone_orderItem.Fields.trone_id, troneId);
            l.Filter.AndFilters.Add(LightDataModel.tbl_trone_orderItem.Fields.disable, 0);
            l.PageSize = int.MaxValue;
            lst        = l.GetDataList();
            if (lst == null || lst.Count() == 0)
            {
                return(lst);
            }
            foreach (var m in lst)
            {
                cache.InsertItem(m);
            }
            return(lst);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 根据 sp_api_url_id 和端口号查找所有通道 (缓存15分钟)
        /// </summary>
        /// <param name="apiId"></param>
        /// <param name="port"></param>
        /// <returns></returns>
        public static IEnumerable <tbl_troneItem> QueryTronesByPort(Shotgun.Database.IBaseDataClass2 dBase, int apiId, string port)
        {
            IEnumerable <tbl_troneItem> cmds;
            var tTrones = cache.GetCacheData(true);

            if (tTrones != null)
            {
                lock (cache.SyncRoot)
                {
                    cmds = from t in tTrones where t.sp_api_url_id == apiId && t.trone_num == port && t.status == 1 select t;
                    if (cmds != null)
                    {
                        return(cmds.ToArray());
                    }
                    return(null);
                }
            }
            var csl = GetQueries(dBase);

            csl.Filter.AndFilters.Add(Fields.sp_api_url_id, apiId);
            csl.Filter.AndFilters.Add(Fields.trone_num, port);
            csl.Filter.AndFilters.Add(Fields.status, 1);

            //csl.Fields = new string[] { Fields.id, Fields.trone_num, Fields.orders, Fields.is_dynamic, Fields.price, Fields.match_price, Fields.sp_trone_id };

            csl.PageSize = int.MaxValue;

            cmds = csl.GetDataList();
            if (cmds != null)
            {
                foreach (var cmd in cmds)
                {
                    cache.InsertItem(cmd);
                }
            }
            return(cmds);
        }