/// <summary> /// If we get an ActionStatusEvent from a service layer, just relay it along /// so the UI can act on it /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void relayActionStatusEvent(object sender, ActionStatusEventArgs e) { if (ActionStatusEvent != null) ActionStatusEvent(sender, e); if (e.State == RequestState.Error || e.State == RequestState.FatalError) throw new ApplicationException(string.Format("{0} halting on serious {1}: {2}", sender.ToString(), e.State, e.Message)); else sendActionStatus(this, e.State, e.Message, false); }
private void handleActionStatus(object sender, ActionStatusEventArgs e) { // Use Dispatcher.Invoke so UI responds and shows message immediately Dispatcher.Invoke(new Action(() => { // If a message regarding data validity, act accordingly. Otherwise just show it to user switch (e.State) { case RequestState.DataInvalid: allowReports(false); break; case RequestState.DataValid: allowReports(true); break; case RequestState.Succeeded: case RequestState.Information: updateStatus(e.Message); break; default: updateStatus(string.Format("{0} Status: {1}", e.State.ToString(), e.Message)); break; } })); }