/// <summary> /// Single conv object is serialized to file /// </summary> /// <param name="obj"></param> public static void saveConvObject(ConversationListObject obj, string msisdn) { lock (readWriteLock) { string FileName = CONVERSATIONS_DIRECTORY + "\\" + msisdn; using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication()) // grab the storage { using (var file = store.OpenFile(FileName, FileMode.Create, FileAccess.Write)) { using (var writer = new BinaryWriter(file)) { writer.Seek(0, SeekOrigin.Begin); obj.Write(writer); } } } } }
public static void saveNewConv(ConversationListObject obj) { int convs = 0; Stopwatch st = Stopwatch.StartNew(); Dictionary <string, ConversationListObject> convMap = App.ViewModel.ConvMap; lock (readWriteLock) { using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication()) // grab the storage { string FileName = CONVERSATIONS_DIRECTORY + "\\" + "_Convs"; using (var file = store.OpenFile(FileName, FileMode.Create, FileAccess.Write)) { using (var writer = new BinaryWriter(file)) { int count = (convMap == null ? 0 : convMap.Count) + 1; writer.Write(count); obj.Write(writer); if (convMap != null && convMap.Count > 0) { foreach (ConversationListObject item in convMap.Values) { item.Write(writer); convs++; } } } } store.DeleteFile(CONVERSATIONS_DIRECTORY + "\\" + "Convs"); store.MoveFile(CONVERSATIONS_DIRECTORY + "\\" + "_Convs", CONVERSATIONS_DIRECTORY + "\\" + "Convs"); } } st.Stop(); long mSec = st.ElapsedMilliseconds; Debug.WriteLine("Time to save {0} conversations : {1}", convs, mSec); }