protected virtual void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { try { } finally { comunicator.OnRequest -= onServerRequest; comunicator?.Dispose(); if (event55Wtch?.Dependancy != null) { event55Wtch.Dependancy.OnChanged -= onChangedEvent55EventHandler; event55Wtch.Dependancy.OnStatusChanged -= onStatusChanged; event55Wtch.Dependancy.OnError -= onError; event55Wtch.Dispose(); event55Wtch = null; } eventService?.Dispose(); eventService = null; onChangedEvent55EventHandler = null; } } Log.Trace($"Disposed: {ToString()}"); disposedValue = true; } }
public EventsWatcher(AConfiguration conf, CancellationToken token) { cancellationToken = token; // setup comunication with bot servers comunicator.ServersUrls = conf.ServersUrls; comunicator.OnRequest += onServerRequest; comunicator.ConnectSubscribers(); // create service for interecting with data eventService = new EventService(conf.ConnectionString, cancellationToken); event55Wtch = new EntitieWatcher <Event55>(conf.ConnectionString, filter: event55 => event55.EventCode == 105); onChangedEvent55EventHandler = new ChangedEventHandler <Event55>(async(s, e) => await onChanged(s, e)); event55Wtch.Dependancy.OnChanged += onChangedEvent55EventHandler; event55Wtch.Dependancy.OnStatusChanged += onStatusChanged; event55Wtch.Dependancy.OnError += onError; event55Wtch.Start(); }