private void HandleRequestCommand(BotCommand cmd, User sender) { var quantitySign = cmd["action"].Equals("buy", StringComparison.InvariantCultureIgnoreCase) ? 1 : -1; var request = new RfqQuoteRequest( cmd["requestId"], cmd["requestParty"], cmd["counterParty"], cmd["product"], null, quantitySign * ParseQuantity(cmd["quantity"]).Value, ParseExpiry(cmd.Get("requestExpirationDate"))); lock (mx_) { if (!counterPartiesTrackingRequestsFromRequestParties_.Contains(request.CounterParty)) { return; } } // rfq [email protected]:1 at [email protected] buy 100m GBP/EUR (15 min) // rfq [email protected]:1 at [email protected] buy 100m GBP/EUR RaiseQuoteRequestReceived(request); }
private void RaiseQuoteRequestReceived(RfqQuoteRequest request) { Logger.InfoFormat("Quote request received: {0}", request); var handler = QuoteRequestReceived; if (handler != null) { handler(this, new Event <RfqQuoteRequest>(request)); } }
private void RaiseQuoteRequestReceived(RfqQuoteRequest quoteRequest) { Logger.InfoFormat("Quote request received: {0}", quoteRequest); lock (mx_) { if (!quoteRequestSubscriptions_.Contains(quoteRequest.CounterParty)) { return; } } var handler = QuoteRequestReceived; if (handler != null) { handler(this, new Event <RfqQuoteRequest>(quoteRequest)); } }