コード例 #1
0
        //Here we will process the rejected messages and see if that's ok or not
        protected void ProcessReject(object param)
        {
            try
            {
                lock (TimeoutOrders)
                {
                    Wrapper rejectWrapper = (Wrapper)param;

                    string key  = (string)rejectWrapper.GetField(RejectFields.KEY);
                    string text = (string)rejectWrapper.GetField(RejectFields.Text);

                    if (TimeoutOrders.ContainsKey(key))
                    {
                        TimeoutOrders.Remove(key);
                    }

                    if (MessageOk.ContainsKey(key))
                    {
                        string refTag = (string)rejectWrapper.GetField(RejectFields.RefTagID);
                        //We expected the message to be ok but it was ejected
                        DoLog(string.Format("<{0}>-Test case FAILED for Order ClOrdId = {1}. We expected the order to be ok but it was rejected. Reason={2} Tag={3}", Configuration.Name, key, text, refTag != null ? refTag : "??"),
                              Constants.MessageType.AssertFailed);
                    }

                    if (MissingTags.ContainsKey(key))
                    {
                        string refTag = (string)rejectWrapper.GetField(RejectFields.RefTagID);
                        if (MissingTags[key] == refTag)
                        {
                            DoLog(string.Format("<{0}>-Test case OK for ClOrdId ={1}. Expected to have a message rejected for  missing tag ={2} and it was rejected for that tag", Configuration.Name, key, refTag), Constants.MessageType.AssertOk);
                        }
                        else
                        {
                            DoLog(string.Format("<{0}>-Test case FAILED for ClOrdId ={1}. Expected to have a message rejected for  missing tag ={2} but it was rejected for tag {3}", Configuration.Name, key, MissingTags[key], refTag), Constants.MessageType.AssertFailed);
                        }
                    }

                    if (ExtraTags.ContainsKey(key))
                    {
                        //Validar que el error es por Extra Tags
                    }
                }
            }
            catch (Exception ex)
            {
                DoLog(string.Format("{0}-Critical error processing a reject:{1}", Configuration.Name, ex.Message), Constants.MessageType.Error);
            }
        }
コード例 #2
0
        protected void ProcessExecutionReport(object param)
        {
            try
            {
                lock (TimeoutOrders)
                {
                    Wrapper erWrapper = (Wrapper)param;

                    string key = (string)erWrapper.GetField(ExecutionReportFields.KEY);


                    if (TimeoutOrders.ContainsKey(key))
                    {
                        TimeoutOrders.Remove(key);
                    }

                    if (MessageOk.ContainsKey(key))
                    {
                        //We expected the message to be ok but it was ejected
                        DoLog(string.Format("<{0}>-Test case OK for Order ClOrdId = {1}. We expected a valid ER and that was received.", Configuration.Name, key), Constants.MessageType.AssertOk);
                    }

                    if (MissingTags.ContainsKey(key))
                    {
                        DoLog(string.Format("<{0}>-Test case FAILED for ClOrdId ={1}. Expected a missing tag {2} but received an Ok Execution Report", Configuration.Name, key, MissingTags[key]), Constants.MessageType.AssertFailed);
                    }

                    if (ExtraTags.ContainsKey(key))
                    {
                        DoLog(string.Format("<{0}>-Test case FAILED for ClOrdId ={1}. Expected an extra tag {2} but received an Ok Execution Report", Configuration.Name, key, ExtraTags[key]), Constants.MessageType.AssertFailed);
                    }
                }
            }
            catch (Exception ex)
            {
                DoLog(string.Format("{0}-Critical error processing a execution report:{1}", Configuration.Name, ex.Message), Constants.MessageType.Error);
            }
        }