Baconography.NeutralServices.OfflineService.RetrieveOrderedThings C# (CSharp) Method

RetrieveOrderedThings() public method

public RetrieveOrderedThings ( string key, System.TimeSpan maxAge ) : Task>
key string
maxAge System.TimeSpan
return Task>
        public async Task<IEnumerable<Thing>> RetrieveOrderedThings(string key, TimeSpan maxAge)
        {
            await Initialize();
            try
            {
                using (var blobCursor = await _blobStoreDb.SeekAsync(_blobStoreDb.GetKeys()[0], BitConverter.GetBytes(key.GetHashCode()), DBReadFlags.WaitOnLock))
                {
                    if (blobCursor != null)
                    {
                        var gottenBlob = blobCursor.Get();
                        var microseconds = BitConverter.ToInt64(gottenBlob, 4);
                        var updatedTime = new DateTime(microseconds * 10).AddYears(1969);
                        var blobAge = DateTime.Now - updatedTime;
                        if (blobAge <= maxAge)
                        {
                            var compressor = new BaconographyPortable.Model.Compression.CompressionService();
                            var decompressedBytes = compressor.Decompress(gottenBlob, 12);
                            IEnumerable<Thing> result = JsonConvert.DeserializeObject<Thing[]>(Encoding.UTF8.GetString(decompressedBytes, 0, decompressedBytes.Length));
                            return result;
                        }
                    }
                }
            }
            catch(Exception ex)
            {
                var errorString = DBError.TranslateError((uint)ex.HResult);
                Debug.WriteLine(errorString);
            }

            return null;
        }