/// <summary> /// RaiseSavingEvent should be called by a controller extending Save before the model is saved. /// </summary> /// <param name="eventArgs"></param> protected void RaiseSavingEvent(SavingEventArgs eventArgs) { if (this.Saving != null) { this.Saving(this, eventArgs); } }
private void SaveAsync(Stream stream, string path) { if (this.Model == null) { return; } SavingEventArgs savingEventArgs = new SavingEventArgs(path); this.OnSavingInternal(savingEventArgs); this.RaiseSavingEvent(savingEventArgs); SendOrPostCallback onSaved = delegate(object eventArgs) { SavedEventArgs savedEventArgs = eventArgs as SavedEventArgs; Debug.Assert(savedEventArgs != null); this.OnSavedInternal(savedEventArgs); }; SendOrPostCallback raiseEvent = delegate(object eventArgs) { SavedEventArgs savedEventArgs = eventArgs as SavedEventArgs; Debug.Assert(savedEventArgs != null); this.RaiseSavedEvent(savedEventArgs); }; AnonymousMethod save = delegate { SavedEventArgs savedEventArgs = null; try { this.SaveInternal(stream, path); savedEventArgs = new SavedEventArgs(path, null); } catch (Exception exception) { savedEventArgs = new SavedEventArgs(path, exception); } try { // For the OnSaved virtual method, do a synchronous send so that we // can trap any exceptions and report them to the event handlers this.asyncOperation.SynchronizationContext.Send(onSaved, savedEventArgs); } catch (Exception exception) { savedEventArgs = new SavedEventArgs(path, exception); } // For the Saved event, do an asynchronous post because we don't care about // exceptions that are raised by event handlers this.asyncOperation.Post(raiseEvent, savedEventArgs); }; save.BeginInvoke(null, null); }
/// <summary> /// Save the model. /// </summary> /// <returns></returns> public bool Save(Guid sessionGroupUniqueId, bool saveAsNew) { if (this.Model == null) { return(false); } string guid = sessionGroupUniqueId.ToString(); SavingEventArgs savingEventArgs = new SavingEventArgs(guid); this.OnSavingInternal(savingEventArgs); this.RaiseSavingEvent(savingEventArgs); SavedEventArgs savedEventArgs = null; try { this.Model.Save(saveAsNew); savedEventArgs = new SavedEventArgs(guid, null); } catch (Exception exception) { savedEventArgs = new SavedEventArgs(guid, exception); } try { this.OnSavedInternal(savedEventArgs); } catch (Exception exception) { savedEventArgs = new SavedEventArgs(guid, exception); } this.RaiseSavedEvent(savedEventArgs); return(true); }
private bool Save(Stream stream, string path) { if (this.Model == null) { return(false); } SavingEventArgs savingEventArgs = new SavingEventArgs(path); this.OnSavingInternal(savingEventArgs); this.RaiseSavingEvent(savingEventArgs); SavedEventArgs savedEventArgs = null; try { this.SaveInternal(stream, path); savedEventArgs = new SavedEventArgs(path, null); } catch (Exception exception) { savedEventArgs = new SavedEventArgs(path, exception); } try { this.OnSavedInternal(savedEventArgs); } catch (Exception exception) { savedEventArgs = new SavedEventArgs(path, exception); } this.RaiseSavedEvent(savedEventArgs); return(true); }
/// <summary> /// OnSavingInternal should be called by a controller extending Save before the model is saved. /// </summary> /// <param name="eventArgs"></param> protected void OnSavingInternal(SavingEventArgs eventArgs) { this.OnSaving(eventArgs); }
/// <summary> /// Called before the Saving event is raised. /// </summary> /// <remarks> /// Notes to Inheritors: When overriding OnSaving in a derived class, calling the base class's OnSaving method is not necessary because there is no initial implementation. /// </remarks> /// <param name="eventArgs">An EventArgs that contains the event data.</param> protected virtual void OnSaving(SavingEventArgs eventArgs) { }