private async Task CoreHandler() { var canEnter = await once.WaitAsync(BindSettings.DelayTime); if (canEnter && Interlocked.CompareExchange(ref notify, 0, 1) == 1) { try { var infos = ChangeWatcher.ChangeInfos; ChangeWatcher.Clear(); var repo = ChangeReport.FromChanges(GetConfiguration(), infos); var saver = new ChangeSaver(repo, BindSettings.Conditions); saver.EmitAndSave(); OnConfigChanged(infos); Saved?.Invoke(this, infos); } catch (Exception ex) { SaveException?.Invoke(this, ex); } finally { Interlocked.Exchange(ref notify, 1); } } }
private void HandleSaveFailure(SaveException e) { if (e.ValidationErrors.Any()) { var message = FormatValidationErrors(e.ValidationErrors); ShowToast(Severity.Warning, message); } else { ShowToast(Severity.Error, e.Message); } }
private void CaptureErrorMessage(Exception exc) { if (TempData.ContainsKey("error")) { TempData.Remove("error"); } TempData.Add("error", exc.Message); SaveException se = exc as SaveException; if (se != null) { TempData.Add("command", se.CommandText); TempData.Add("record", se.Record); } }
private async Task CoreHandler() { if (notify && await once.WaitAsync(BindSettings.DelayTime)) { try { var infos = ChangeWatcher.ChangeInfos; ChangeWatcher.Clear(); var repo = ChangeReport.FromChanges(ChangeNotifyable, infos); var saver = new ChangeSaver(repo, BindSettings.Conditions); var res = saver.EmitAndSave(); Updater(BindValue); Saved?.Invoke(this, infos); } catch (Exception ex) { SaveException?.Invoke(this, ex); } } }
/// <summary> /// Reproduces the script from a failed statement execution so you can troubleshoot in your SQL tool of choice /// </summary> public abstract string GetScriptFromSaveException(SaveException exception);
public override string GetScriptFromSaveException(SaveException exception) { throw new NotImplementedException(); }
/// <summary> /// Adds logger to list of exceptions saving handlers /// </summary> /// <param name="logger">delegate of form: void SaveException(Exception message);</param> public void AddExceptionsLogger(SaveException logger) { _logExceptionModbusRtu += logger; LogExceptionRsp += logger; }
/// <summary> /// Removes logger from current list of exceptions saving handlers /// </summary> /// <param name="logger">delegate of form: void SaveException(Exception message);</param> public void RemoveExceptionsLogger(SaveException logger) { LogExceptionRsp -= logger; _logExceptionModbusRtu -= logger; }