/// <inheritdoc/>
        public bool Load(string conditionName, ICachableCondition condition)
        {
            var cachedValueDto = _lazyConditionCacheDtos.Value.FirstOrDefault(dto => dto.ConditionName == conditionName);

            if (cachedValueDto == null || cachedValueDto.CurrentValue == null)
            {
                return(false);
            }

            condition.ManipulateState(cachedValueDto.CurrentValue);

            return(true);
        }
        /// <inheritdoc/>
        public void Save(string conditionName, ICachableCondition condition)
        {
            var existingCachedValueDto = _lazyConditionCacheDtos.Value.FirstOrDefault(dto => dto.ConditionName == conditionName);

            if (existingCachedValueDto == null)
            {
                _lazyConditionCacheDtos.Value.Add(condition.ToConditionCacheDto(conditionName));
            }
            else
            {
                _lazyConditionCacheDtos.Value[_lazyConditionCacheDtos.Value.IndexOf(existingCachedValueDto)] = condition.ToConditionCacheDto(conditionName);
            }

            File.WriteAllText(Path.Combine(CacheHelpers.AppDataDirectory, _conditionCacheFileName), JsonConvert.SerializeObject(_lazyConditionCacheDtos.Value, _serializerSettings));
        }