private object GetTabPermissionsCallBack(CacheItemArgs cacheItemArgs)
        {
            int         portalID = (int)cacheItemArgs.ParamList[0];
            IDataReader dr       = dataProvider.GetTabPermissionsByPortal(portalID);
            Dictionary <int, TabPermissionCollection> dic = new Dictionary <int, TabPermissionCollection>();

            try
            {
                TabPermissionInfo obj;
                while (dr.Read())
                {
                    obj = CBO.FillObject <TabPermissionInfo>(dr, false);
                    if (dic.ContainsKey(obj.TabID))
                    {
                        dic[obj.TabID].Add(obj);
                    }
                    else
                    {
                        TabPermissionCollection collection = new TabPermissionCollection();
                        collection.Add(obj);
                        dic.Add(obj.TabID, collection);
                    }
                }
            }
            catch (Exception exc)
            {
                Exceptions.LogException(exc);
            }
            finally
            {
                CBO.CloseDataReader(dr, true);
            }
            return(dic);
        }