/// <summary>
        /// Gets a specific PreValue by its Id
        /// </summary>
        /// <param name="preValueId">Id of the PreValue to retrieve the value from</param>
        /// <returns>PreValue as a string</returns>
        public string GetPreValueAsString(int preValueId)
        {
            var collections = IsolatedCache.GetCacheItemsByKeySearch <PreValueCollection>(CacheKeys.DataTypePreValuesCacheKey + "_");

            var preValue = collections.SelectMany(x => x.FormatAsDictionary().Values).FirstOrDefault(x => x.Id == preValueId);

            if (preValue != null)
            {
                return(preValue.Value);
            }

            var dto = Database.FirstOrDefault <DataTypePreValueDto>("WHERE id = @preValueId", new { preValueId });

            if (dto == null)
            {
                return(string.Empty);
            }

            var collection = GetCachedPreValueCollection(dto.DataTypeNodeId);

            if (collection == null)
            {
                return(string.Empty);
            }

            preValue = collection.FormatAsDictionary().Values.FirstOrDefault(x => x.Id == preValueId);
            return(preValue == null ? string.Empty : preValue.Value);
        }