Beispiel #1
0
        public override bool Equals(object obj)
        {
            IUSSDHandler compareUSSDHandler = obj as IUSSDHandler;

            return(compareUSSDHandler.HandlerID.Equals(this.handlerID));
        }
Beispiel #2
0
 public MutuelSmartUSSDProcessor(USSDSession session, IUSSDHandler handler) : base(session, handler)
 {
 }
        protected void OnHttpRequestReceived(IAsyncResult asyncResult)
        {
            if (listenerState != ListenerStates.Running)
            {
                return;
            }

            HttpListener httpListener = (HttpListener)asyncResult.AsyncState;

            //Console.WriteLine(DateTime.Now.ToString() + " Request received");

            if (httpListener.IsListening)
            {
                HttpListenerResponse response = null;
                try
                {
                    // Call EndGetContext to complete the asynchronous operation.
                    HttpListenerContext context = httpListener.EndGetContext(asyncResult);
                    HttpListenerRequest request = context.Request;
                    response = context.Response;

                    String requestData = GetRequestData(request);

                    if (requestData.Length != 0)
                    {
                        USSDHandlerRequestType.RequestTypes requestType = USSDHandlerRequestType.GetRequestType(request.HttpMethod);
                        IUSSDHandler ussdHandler = USSDHandlerFactory.GetHandler(mobileNetwork, requestData, requestType);
                        Boolean      isTimeout   = false;
                        Boolean      isInvalid   = false;

                        ussdHandler.Initialize(requestData, requestType, out isTimeout, out isInvalid);

                        if (!isTimeout)
                        {
                            LogManager.LogStatus("Handler {0} found for request", ussdHandler.HandlerID);
                            String responseData = ussdHandler.ProcessRequest(requestData);
                            WriteResponse(responseData, response);
                        }
                        else
                        {
                            LogManager.LogStatus("Timout request for handler {0} received", ussdHandler.HandlerID);
                        }
                    }
                    else
                    {
                        WriteResponse("Invalid/Empty Request", response);
                    }
                }
                catch (Exception ex)
                {
                    LogManager.LogError(ex);
                    if (response != null)
                    {
                        WriteResponse(ex.Message, response);
                    }
                }
                finally
                {
                    httpListener.BeginGetContext(new AsyncCallback(OnHttpRequestReceived), httpListener);
                }
            }
        }
 public SubscriptionUSSDProcessor(USSDSession session, IUSSDHandler handler) : base(session, handler)
 {
 }
 public GenericCampaign(USSDSession session, IUSSDHandler handler)
     : base(session, handler)
 {
 }