Exemplo n.º 1
0
        private void WriteResultsIgnoringError <T>(string prefix, QueryCriteria query, CachedResult <T>[] results)
        {
            if (prefix == null)
            {
                throw new ArgumentNullException(nameof(prefix));
            }
            if (query == null)
            {
                throw new ArgumentNullException(nameof(query));
            }
            if (results == null)
            {
                throw new ArgumentNullException(nameof(results));
            }

            try
            {
                var cacheFile = GetCacheFile(prefix, query.GetHashCode());
                cacheFile.Directory.Create();
                using (var stream = cacheFile.OpenWrite())
                {
                    (new BinaryFormatter()).Serialize(stream, results);
                }
            }
            catch (Exception e)
            {
                _errorLogger(e);
            }
        }
Exemplo n.º 2
0
        protected override byte[] DataSetRetriever(QueryCriteria query)
        {
            if (query == null)
            {
                throw new ArgumentNullException(nameof(query));
            }

            var result = GetCachedResultsIgnoringError <byte[]>(PREFIX_DATASET, query.GetHashCode())
                         .FirstOrDefault(cachedResult => cachedResult.Query.Equals(query));

            return((result == null) ? null : result.Value);
        }
Exemplo n.º 3
0
        protected override int?RowCountRetriever(QueryCriteria query)
        {
            if (query == null)
            {
                throw new ArgumentNullException(nameof(query));
            }

            var result = GetCachedResultsIgnoringError <int>(PREFIX_ROWCOUNT, query.GetHashCode())
                         .FirstOrDefault(cachedResult => cachedResult.Query.Equals(query));

            return((result == null) ? (int?)null : result.Value);
        }
Exemplo n.º 4
0
        protected override Tuple <object> ScalarRetriever(QueryCriteria query)
        {
            if (query == null)
            {
                throw new ArgumentNullException(nameof(query));
            }

            var result = GetCachedResultsIgnoringError <object>(PREFIX_SCALAR, query.GetHashCode())
                         .FirstOrDefault(cachedResult => cachedResult.Query.Equals(query));

            return((result == null) ? null : Tuple.Create(result.Value));
        }
Exemplo n.º 5
0
        private CachedResult <T>[] SetInCachedResults <T>(string prefix, QueryCriteria query, T data)
        {
            if (prefix == null)
            {
                throw new ArgumentNullException(nameof(prefix));
            }
            if (query == null)
            {
                throw new ArgumentNullException(nameof(query));
            }

            var hashCode = query.GetHashCode();

            return(GetCachedResultsIgnoringError <T>(prefix, hashCode)
                   .Where(result => !result.Query.Equals(query))
                   .Concat(new[] { new CachedResult <T>(query, data) })
                   .ToArray());
        }