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; } }
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]); } }