Пример #1
0
        public static async Task <bool> TrySerializeAsync(IBinarySerializable obj, string fileId, bool trim = false, CacheManager.DataType dataType = CacheManager.DataType.CachedData)
        {
            bool result;

            try
            {
                Stream       arg_FC_0 = await(await ApplicationData.Current.LocalFolder.GetFolderAsync(CacheManager.GetFolderNameForDataType(dataType))).OpenStreamForWriteAsync(fileId, CreationCollisionOption.ReplaceExisting);
                BinaryWriter writer   = new BinaryWriter(arg_FC_0);
                if (trim && obj is IBinarySerializableWithTrimSupport)
                {
                    (obj as IBinarySerializableWithTrimSupport).WriteTrimmed(writer);
                }
                else
                {
                    obj.Write(writer);
                }
                arg_FC_0.Close();
                result = true;
            }
            catch (Exception var_5_140)
            {
                Logger.Instance.Error("CacheManager.TrySerializeAsync failed.", var_5_140);
                result = false;
            }
            return(result);
        }
Пример #2
0
 public static bool TrySerialize(IBinarySerializable obj, string fileId, bool trim = false, CacheManager.DataType dataType = CacheManager.DataType.CachedData)
 {
     try
     {
         Stopwatch stopwatch = new Stopwatch();
         stopwatch.Start();
         using (IsolatedStorageFile storeForApplication = IsolatedStorageFile.GetUserStoreForApplication())
         {
             using (IsolatedStorageFileStream storageFileStream = storeForApplication.OpenFile(CacheManager.GetFilePath(fileId, dataType, "/"), FileMode.Create))
             {
                 BinaryWriter writer = new BinaryWriter((Stream)storageFileStream);
                 if (trim && obj is IBinarySerializableWithTrimSupport)
                 {
                     (obj as IBinarySerializableWithTrimSupport).WriteTrimmed(writer);
                 }
                 else
                 {
                     obj.Write(writer);
                 }
             }
         }
         stopwatch.Stop();
         Logger.Instance.Info("CacheManager.TrySerialize succeeded for fileId = {0}, in {1} ms.", fileId, stopwatch.ElapsedMilliseconds);
         return(true);
     }
     catch (Exception ex)
     {
         Logger.Instance.Error("CacheManager.TrySerialize failed.", ex);
     }
     return(false);
 }
Пример #3
0
        public static async Task <bool> TryDeserializeAsync(IBinarySerializable obj, string fileId, CacheManager.DataType dataType = CacheManager.DataType.CachedData)
        {
            bool result;

            try
            {
                StorageFolder rootDirectory = await ApplicationData.Current.LocalFolder.GetFolderAsync(CacheManager.GetFolderNameForDataType(dataType));

                IsolatedStorageFile var_5 = IsolatedStorageFile.GetUserStoreForApplication();
                try
                {
                    if (!var_5.FileExists(CacheManager.GetFilePath(fileId, dataType, "/")))
                    {
                        result = false;
                        return(result);
                    }
                }
                finally
                {
                    // int num;
                    if (/*num < 0 &&*/ var_5 != null)
                    {
                        var_5.Dispose();
                    }
                }
                Stream arg_143_0 = await rootDirectory.OpenStreamForReadAsync(fileId);

                BinaryReader reader = new BinaryReader(arg_143_0);
                obj.Read(reader);
                arg_143_0.Close();
                result = true;
            }
            catch (Exception var_8_15F)
            {
                Logger.Instance.Error("CacheManager.TryDeserializeAsync failed.", var_8_15F);
                result = false;
            }
            return(result);
        }