Пример #1
0
 private void process(IGSMRequest request)
 {
     IGRequestProcessing.Add(request, this);
     IGAnswer answer = request.CreateAnswer();
     int nRes = IGSMAnswer.IGSMANSWER_ERROR_NONE;
     if (answer != null)
     {
         answer.Init(request.GetGuid(), request.GetTitle());
         if (answer.Execute())
             request.SetResult(answer.GetXml());
         else
             nRes = (int)IGSMAnswer.IGSMANSWER_ERROR_CODE.IGSMANSWER_ERROR_ANSWEREXECUTION;
     }
     if (IGSMAnswer.IsSMError(nRes))
     {
         IGSMAnswerError answerFailure = new IGSMAnswerError(request, (IGSMAnswer.IGSMANSWER_ERROR_CODE)nRes);
         request.SetId(nRes);
         request.SetResult(answerFailure.GetXml());
     }
 }
Пример #2
0
        public IGRequest ProcessRequest(string sText, AutoResetEvent stopWaitHandle)
        {
            IGRequest request = CreateRequest(sText, stopWaitHandle);
            if (m_processedRequests.ContainsKey(request.GetGuid()))
            {
                m_processedRequests[request.GetGuid()].Key.Execute();
                return request;
            }
            if (IGRequestProcessing.GetRequest(request.GetGuid()) != null)
                return request;
            if (!request.Valid)
            {
                IGSMAnswer.IGSMANSWER_ERROR_CODE errCode = IGSMAnswer.IGSMANSWER_ERROR_CODE.IGSMANSWER_ERROR_CORRUPTEDREQUEST;
                IGSMAnswerError answerFailure = new IGSMAnswerError(request, errCode);
                request.SetId((int)errCode);
                request.SetResult(answerFailure.GetXml());
                return request;
            }
            switch (request.GetTypeId())
            {
                case IGRequest.IGREQUEST_SERVER:
                    process((IGSMRequest)request);
                    break;

                // Local application request
                case IGRequest.IGREQUEST_FRAME:
                case IGRequest.IGREQUEST_WORKSPACE:
                    int nRes = process(request);
                    if (nRes != IGSMAnswer.IGSMANSWER_ERROR_NONE)
                    {
                        IGSMAnswer.IGSMANSWER_ERROR_CODE errCode = (IGSMAnswer.IGSMANSWER_ERROR_CODE)nRes;
                        IGSMAnswerError answerFailure = new IGSMAnswerError(request, errCode);
                        request.SetId((int)errCode);
                        request.SetResult(answerFailure.GetXml());
                    }
                    break;
            }
            return request;
        }