public async Task SaveCurrentViewModel(string modelName) { if (CurrentViewModel != null) { await _jsRuntime.InvokeVoidAsync("dataStorage.add", KeyValuePair.Create(modelName, CurrentViewModel)); OnDataSaved?.Invoke(this, await GetAll()); } }
public virtual bool Save() { App.Logger.Log($"[JDATA] - Saving {FileName}"); string content = JsonConvert.SerializeObject(data); File.WriteAllText(FileName, content); App.Logger.Log($"[JDATA] - Saved!"); OnDataSaved?.Invoke(); return(true); }
public virtual bool Save() { App.Logger.Log($"[XDATA] - Saving {FileName}"); using (FileStream fs = new FileStream(FileName, FileMode.Create)) using (XmlWriter writer = XmlWriter.Create(fs, new XmlWriterSettings() { Indent = Indent, IndentChars = "\t" })) { _serializer.Serialize(writer, data); App.Logger.Log($"[XDATA] - Saved!"); OnDataSaved?.Invoke(); return(true); } }
private async Task SerializeAsync(Stream stream, SerializationArguments serializationArguments, CancellationToken cancellationToken) { for (int x = 0; x < serializationArguments.stepUpNodesRequired; x++) { stream.WriteByte(ControlByte(Directions.Up, DataType.Data, SizeType.Linear, 0)); } serializationArguments.stepUpNodesRequired = 0; Directions direction; if (serializationArguments.previouslySerialized == Parent || serializationArguments.previouslySerialized == null) { direction = Directions.Down; } else if (serializationArguments.previouslySerialized.Parent == Parent) { direction = Directions.New; } else if (serializationArguments.previouslySerialized.Parent.Parent == Parent) { direction = Directions.Up; } else { throw new PromptuariumException("Previously serialized node is invalid"); } bool appending = false; // If the node has only children if (!Contains(Data) && !Contains(MetaData) && children.Count > 0) { stream.WriteByte(ControlByte(direction, DataType.Data, SizeType.Linear, 0)); } #region Saving Data #region Fireing event OnDataSaving?.Invoke(this, new PromptuariumSavingEventArgs()); #endregion if (Contains(Data)) { appending = await SerializeContentAsync(stream, Data, DataType.Data, direction, appending, cancellationToken).ConfigureAwait(false); } #region Fireing event OnDataSaved?.Invoke(this, new PromptuariumSavedEventArgs()); #endregion #endregion #region Saving MetaData #region Fireing event OnMetaDataSaving?.Invoke(this, new PromptuariumSavingEventArgs()); #endregion if (Contains(MetaData)) { appending = await SerializeContentAsync(stream, MetaData, DataType.MetaData, direction, appending, cancellationToken).ConfigureAwait(false); } #region Fireing event OnMetaDataSaved?.Invoke(this, new PromptuariumSavedEventArgs()); #endregion #endregion serializationArguments.previouslySerialized = this; if (children.Count > 0) { Element child = new Element(); for (int childIndex = 0; childIndex < children.Count; childIndex++) { child = children[childIndex]; if (child != null) { await child.SerializeAsync(stream, serializationArguments, cancellationToken).ConfigureAwait(false); } } if (child.children.Count > 0) { serializationArguments.stepUpNodesRequired++; serializationArguments.previouslySerialized = child; } } }