﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="SettingConfiguration_Caching.cs" company="DevDigital">
//   DevDigital
// </copyright>
// --------------------------------------------------------------------------------------------------------------------

namespace FluentSettings
{
    using System;

    /// <summary>
    /// Setting configuration
    /// </summary>
    public partial class SettingConfiguration
    {
        /// <summary>
        /// The current cache
        /// </summary>
        private ISettingsCache currentCache;

        /// <summary>
        /// Sets the current caching.
        /// </summary>
        /// <typeparam name="TCache">The type of the cache.</typeparam>
        /// <returns>The setting configuration</returns>
        public ISettingConfiguration WithCache<TCache>() where TCache : ISettingsCache, new()
        {
            throw new NotImplementedException();
        }

        /// <summary>
        /// Sets the current caching.
        /// </summary>
        /// <param name="settingsCache">The settings cache.</param>
        /// <returns>The setting configuration</returns>
        public ISettingConfiguration WithCache(ISettingsCache settingsCache)
        {
            throw new NotImplementedException();

            if (settingsCache == null)
            {
                throw new ArgumentNullException("settingsCache", "No settings cache specified");
            }

            this.currentCache = settingsCache;
            return this;
        }       
    }
}