/// <summary>
        /// Gets a result base item.
        /// </summary>
        /// <typeparam name="T">The result base data type.</typeparam>
        /// <param name="calculatedDataItemCacheKey">The result base cache key.</param>
        /// <returns>
        /// Returns a CalculatedDataItem if the CalculatedDataItemType was found in session cache.
        /// Otherwise a NullCalculatedDataItem object is returned.
        /// </returns>
        public CalculatedDataItem <T> GetCalculatedDataItem <T>(CalculatedDataItemCacheKey calculatedDataItemCacheKey)
        {
            object calculatedDataItem;

            _calculatedDataItemsDictionary.TryGetValue(calculatedDataItemCacheKey, out calculatedDataItem);
            if (calculatedDataItem == null)
            {
                calculatedDataItem = new CalculatedDataItem <T>();
                _calculatedDataItemsDictionary.Add(calculatedDataItemCacheKey, calculatedDataItem);
            }
            return((CalculatedDataItem <T>)calculatedDataItem);
        }
        /// <summary>
        /// Adds a result base item.
        /// </summary>
        /// <typeparam name="T">The result base data type.</typeparam>
        /// <param name="calculatedDataItemCacheKey">The result base cache key.</param>
        /// <param name="data">The data.</param>
        /// <returns>
        /// The newly created CalculatedDataItem object
        /// </returns>
        public CalculatedDataItem <T> AddCalculatedDataItem <T>(CalculatedDataItemCacheKey calculatedDataItemCacheKey, T data)
        {
            CalculatedDataItem <T> calculatedDataItem = new CalculatedDataItem <T>(data);

            if (_calculatedDataItemsDictionary.ContainsKey(calculatedDataItemCacheKey))
            {
                _calculatedDataItemsDictionary[calculatedDataItemCacheKey] = calculatedDataItem;
            }
            else
            {
                _calculatedDataItemsDictionary.Add(calculatedDataItemCacheKey, calculatedDataItem);
            }

            return(calculatedDataItem);
        }