HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/TDijk1/erp-apps.eu/wwwroot/App_Code/Pux/Controls/DelayedWebPart.cs
using CMS.Helpers;
using CMS.PortalControls;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Pux.Controls
{
    public abstract class DelayedWebPart<T, K> : CMSAbstractWebPart
    {
        public abstract string UniqueKey { get; }
        public abstract Dictionary<T, K> LoadData(List<T> ids);

        protected List<T> IDs
        {
            get
            {
                var data = RequestStockHelper.GetItem(UniqueKey + "_id") as List<T>;
                if (data == null)
                {
                    data = new List<T>();
                    RequestStockHelper.Add(UniqueKey + "_id", data);
                }

                return data;
            }
        }

        protected Dictionary<T, K> Data
        {
            get
            {
                var data = RequestStockHelper.GetItem(UniqueKey + "_data") as Dictionary<T, K>;
                if (data == null)
                {
                    data = LoadData(IDs);
                    RequestStockHelper.Add(UniqueKey + "_data", data);
                }

                return data;
            }
        }
    }
}