protected override Task ExecuteAsync(CancellationToken stoppingToken) { var operation = Options switch { ReloadOptions reloadOptions => ReloadAsync(reloadOptions), CreateOptions createOptions => CreateAsync(createOptions), DeleteOptions deleteOptions => DeleteAsync(deleteOptions), ListOptions listOptions => ListAsync(listOptions), AddTripLinkOptions addOptions => AddTripLinkAsync(addOptions), RemoveTripLinkOptions removeOptions => RemoveTripLinkAsync(removeOptions), _ => throw new InvalidOperationException("Invalid options type!"), }; _ = Host.StopAsync(); return(operation); }
// MSDN: reloads are performed at idle time protected void Reload(ReloadOptions flags) { if (!_reloadScheduled) { _reloadScheduled = true; _reloadOptions = flags; bool force = ((flags & ReloadOptions.Force) == ReloadOptions.Force); if (force) { ReloadCore(); } else { Application.Idle += new EventHandler(OnIdle); } } }
protected void Reload(ReloadOptions flags) { this._state[StateForceReload] = (flags & ReloadOptions.Force) != ReloadOptions.Default; this._state[StateFlushReload] = (flags & ReloadOptions.NoFlush) == ReloadOptions.Default; this._state[StateModifyIfErrors] = (flags & ReloadOptions.ModifyOnError) != ReloadOptions.Default; if (!this._state[StateFlushInProgress]) { if (this._state[StateActiveDocument]) { if (!this._state[StateReloadAtIdle]) { Application.Idle += new EventHandler(this.OnIdle); this._state[StateReloadAtIdle] = true; } } else { this._state[StateDeferredReload] = true; } } }
private void OnDesignerActivate(object sender, EventArgs e) { this._state[StateActiveDocument] = true; if (this._state[StateDeferredReload] && (this._host != null)) { this._state[StateDeferredReload] = false; ReloadOptions flags = ReloadOptions.Default; if (this._state[StateForceReload]) { flags |= ReloadOptions.Force; } if (!this._state[StateFlushReload]) { flags |= ReloadOptions.NoFlush; } if (this._state[StateModifyIfErrors]) { flags |= ReloadOptions.ModifyOnError; } this.Reload(flags); } }
// MSDN: reloads are performed at idle time protected void Reload (ReloadOptions flags) { if (!_reloadScheduled) { _reloadScheduled = true; _reloadOptions = flags; bool force = ((flags & ReloadOptions.Force) == ReloadOptions.Force); if (force) ReloadCore (); else Application.Idle += new EventHandler (OnIdle); } }
#pragma warning disable IDE0060 private async Task ReloadAsync(ReloadOptions options) { await Configuration.MarkChangesAsync(); Logger.LogInformation("Success, Stickynet will refresh in the next cycle if it is running at the moment! [max 1s]"); }
protected void Reload(ReloadOptions flags) { throw null; }