public InvalidSubscriptionException(Message request, Nack nack) : base(TextForErrorCode(nack.error) + ": " + nack.FormattedMessage) { switch (request.TypeId) { case SubAddRqst.ID: Expression = ((SubAddRqst)request).subscriptionExpr; break; case SubModRqst.ID: Expression = ((SubModRqst)request).subscriptionExpr; break; default: Expression = ""; break; } Reason = nack.error == NackError.ExpisTrivial ? SubscriptionError.TrivialExpression : SubscriptionError.SyntaxError; }
internal async Task EnableSubscriptionAsync(EventBusSubscription subscription) { _logger.LogDebug("Enabling subscription: {0}", subscription.Name); if (IsConnectionOpen) { try { await SendMessageAndWaitForAcknowledgeAsync(new SubscribeAction { Rule = subscription.Name, Pattern = subscription.Pattern }); } catch (InvalidOperationException) { // websocket is not connected; ignore error } catch (Exception e) { _logger.LogDebug("Activating subscription FAILED: {0}\n{1}", subscription.Name, e); subscription.Status = EventBusSubscriptionStatus.Error; // subscription failed SubscriptionError?.Invoke(this, new EventBusSubscriptErrorEventArgs(subscription, e)); } } }
public void RecordException(SubscriptionError errorType, string exception) { _stats.ErrorType = errorType; _stats.Exception = exception; }