コード例 #1
0
        internal void CostMatrixResponseHandler(CostMatrixResponseMessage message)
        {
            if ( !ValidateMatrix(message) )
            {
                return;
            }

            SendCostMatrixResponseMessage(message);
        }
コード例 #2
0
        private void SendCostMatrixResponseMessage(CostMatrixResponseMessage message)
        {
            m_Converter.DoubleMatrix = message.Matrix;
            m_Converter.Convert();

            var calculatedMessage = new CostMatrixCalculatedMessage
                                    {
                                        Matrix = m_Converter.IntegerMatrix,
                                        CostPerFeature = CostPerFeature.ToArray()
                                    };

            m_Bus.PublishAsync(calculatedMessage);
        }
コード例 #3
0
        private bool ValidateMatrix(CostMatrixResponseMessage message)
        {
            if ( message.Matrix == null ||
                 message.Matrix.Length == 0 )
            {
                HandleMatrixIsNullCase();

                return false;
            }

            if ( message.Matrix.Length == SurveyFeature.Length * 2 )
            {
                return true;
            }

            HandleIncorrectMatrix(message);

            return false;
        }
コード例 #4
0
 private void HandleIncorrectMatrix(CostMatrixResponseMessage message)
 {
     m_Logger.Info("Ignoring message! - " +
                   "Received CostMatrixResponseMessage with matrix length {0} ".Inject(message.Matrix.Length) +
                   "but expected is {0}!".Inject(SurveyFeature.Length * 2));
 }