public Task Converse(IConversation conversation) { if (ConversationContext != null) { throw new InvalidOperationException("Already having a conversation"); } ConversationContext = conversation.Context; return(Task .Run(conversation.Start, ConversationContext.TokenSource.Token) .ContinueWith(async t => { if (t.IsFaulted) { var exception = t.Exception?.Flatten().InnerException; if (!(exception is TaskCanceledException)) { Logger.Error(exception, "Caught exception when executing conversation"); } } ConversationContext?.Dispose(); ConversationContext = null; await ModifyStats(exclRequest: true); })); }
protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); }
public void Dispose() { _context.Dispose(); }
public async Task Dispose() { ConversationContext?.Dispose(); ForcedStat.Reset(); await Interact(close : true); }
public void Dispose() { Db.Dispose(); GC.SuppressFinalize(this); }