private async void ReadDatabase() { _locker.Reset(); await Task.Factory.StartNew(async() => { try { string text = await _fileAccessor.ReadFile(DatabaseFileUri); if (string.IsNullOrEmpty(text)) { CreateModel(); return; } text = ProductsDatabaseEncrypter.Decrypt(text); XmlSerializer serializer = new XmlSerializer(typeof(ProductsDatabaseModel)); using (TextReader reader = new StringReader(text)) { _model = (ProductsDatabaseModel)serializer.Deserialize(reader); } } catch (Exception ex) { Debug.WriteLine(ex.Message); CreateModel(); } finally { _locker.Set(); } }); }
private async void WriteDatabase() { _locker.Reset(); await Task.Factory.StartNew(async() => { _model.Version = DatabaseVersion; XmlSerializer serializer = new XmlSerializer(typeof(ProductsDatabaseModel)); StringBuilder builder = new StringBuilder(); using (TextWriter writer = new StringWriter(builder)) { serializer.Serialize(writer, _model); } string encodedText = ProductsDatabaseEncrypter.Encrypt(builder.ToString()); await _fileAccessor.WriteFile(DatabaseFileUri, encodedText); _locker.Set(); }); }