private void RaiseQuoteInquiryResponseReceived(RfqQuoteInquiryResponse response)
        {
            Logger.InfoFormat("Quote inquiry response received: {0}", response);

            var handler = QuoteInquiryResponseReceived;

            if (handler != null)
            {
                handler(this, new Event <RfqQuoteInquiryResponse>(response));
            }
        }
            // quote from [email protected] to [email protected]:1 @ 57.3 for 200m
            // quote from [email protected] to [email protected]:1 @ 57.5
            private static string ToQuoteMessage(RfqQuoteInquiryResponse quote)
            {
                var result = string.Format("quote from {0} to {1}:{2} @ {3}",
                                           quote.CounterParty,
                                           quote.RequestParty,
                                           quote.RequestId,
                                           string.Format(CultureInfo.InvariantCulture, "{0:N4}", quote.Price.Value));

                if (quote.Quantity.HasValue)
                {
                    result += " for " + ToHumanReadableQuantity(quote.Quantity.Value);
                }
                return(result);
            }
            public static string ToMessage(this RfqQuoteInquiryResponse quote)
            {
                switch (quote.ResponseType)
                {
                // this one should not happen
                case RfqResponseType.SetRequestId:
                    return(string.Format("id {0}:{1}", quote.RequestParty, quote.RequestId));

                case RfqResponseType.Expired:
                    return(string.Format("expired {0}:{1}", quote.RequestParty, quote.RequestId));

                case RfqResponseType.Error:
                    return(string.Format("error {0}:{1} {2}", quote.RequestParty, quote.RequestId, quote.ResponseMessage));

                case RfqResponseType.Quote:
                    return(ToQuoteMessage(quote));

                default:
                    throw new NotImplementedException();
                }
            }
        public void SendQuoteInquiryResponse(RfqQuoteInquiryResponse quoteInquiryResponse)
        {
            Logger.InfoFormat("Sending quote inquiry response {0}", quoteInquiryResponse);

            SendMessage(quoteInquiryResponse.RequestParty, quoteInquiryResponse.ToMessage());
        }
        public void SendQuoteInquiryResponse(RfqQuoteInquiryResponse quoteInquiryResponse)
        {
            Logger.InfoFormat("Sending quote inquiry response {0}", quoteInquiryResponse);

            RaiseQuoteInquiryResponseReceived(quoteInquiryResponse);
        }