コード例 #1
0
        private void level1_PublicationResponse(object sender, PublicationResponseEventArgs e)
        {
            switch (e.ResponseEventType)
            {
            // Price update received - check condition
            case PublicationResponseEventType.Image:
            case PublicationResponseEventType.Update:
                TestCondition();
                break;

            // Report error (e.g. unknown instrument)
            case PublicationResponseEventType.Error:
                ErrorString = e.Errors[0];
                ClearPublication();
                SetState(TaskStateType.Error);
                break;

            // Should only receive this as  a result of server closing publication, which is reported here as an error
            case PublicationResponseEventType.Close:
                ErrorString = "Server closed publication";
                ClearPublication();
                SetState(TaskStateType.Error);
                break;

            case PublicationResponseEventType.ServiceDown:
                ErrorString = "Service down";
                ClearPublication();
                SetState(TaskStateType.Error);
                break;
            }
        }
コード例 #2
0
        void riskItemDetails3_PublicationResponse(object sender, PublicationResponseEventArgs e)
        {
            if (e.ResponseEventType.Equals(PublicationResponseEventType.Image))
            {
                if (riskItemDetails3 != null &&
                    riskItemDetails3.Code != null && riskItemDetails3.Description != null)
                {
                    StringBuilder outputs = new StringBuilder();

                    string formatColumns = "{0},{1},{2},{3}";
                    outputs.AppendLine(string.Format(formatColumns, "Query", "Code", "Desc", "NetDeltaPosition"));
                    outputs.AppendLine(string.Format(formatColumns, "MarginUtilisation", riskItemDetails1.Code, riskItemDetails1.Description, firstMarginUtilisation.NetDeltaPosition.ToString()));
                    outputs.AppendLine(string.Format(formatColumns, "ByProduct", riskItemDetails2.Code, riskItemDetails2.Description, firstMarginUtilisationByProduct.NetDeltaPosition.ToString()));
                    outputs.AppendLine(string.Format(formatColumns, "ByInstrument", riskItemDetails3.Code, riskItemDetails3.Description, firstMarginUtilisationByInstrument.NetDeltaPosition.ToString()));

                    this.Output = outputs.ToString();

                    riskItemDetails1.Unsubscribe();
                    riskItemDetails2.Unsubscribe();
                    riskItemDetails3.Unsubscribe();

                    // Stop listening to the publication
                    riskItemDetails3.PublicationResponse -= riskItemDetails3_PublicationResponse;

                    OnPropertyChanged(new PropertyChangedEventArgs("Output"));
                }
            }

            if (e.ResponseEventType.Equals(PublicationResponseEventType.Error))
            {
                Error(e.Errors[0]);
            }
        }