Example #1
0
        public DefaultModule(IStore store)
        {
            this.store = store;

            Get["/"] = parameters => "Welcome to the sample NancyFX USSD app. Make a POST to / to continue";

            Post["/", true] = async(_, token) =>
            {
                var request = this.Bind <UssdRequest>();
                return(await Ussd.Process(store, request, "Main", "Menu").ConfigureAwait(false));
            };
        }
Example #2
0
        public async Task <IHttpActionResult> Index(UssdRequest request)
        {
            var redisConnection = await ConnectionManager.Instance.GetRedisDbConnectionLayer().RedisConnection();

            if (!redisConnection.IsConnected)
            {
                await redisConnection.ConfigureAsync();
            }

            //intentionally skipped mongodb logging
            return(Ok(await Ussd.Process(new RedisStore(redisConnection), request, "Main", "Start", null,
                                         null)));
        }
Example #3
0
        static void TestUssd()
        {
            Ussd ussd = new Ussd(ACCESS_TOKEN);

            Console.WriteLine("Send ussd request:");

            dynamic response = ussd
                               .SetAddress("9065272450")
                               .SetSenderAddress(SHORT_CODE)
                               .SetUssdMessage("Simple USSD \n1: Hello \n2: Hello")
                               .SetFlash(false)
                               .SendUssdRequest()
                               .GetDynamicResponse();

            Console.WriteLine("Response: -->");

            string sessionId = response["outboundUSSDMessageRequest"]["receiptRequest"]["sessionID"];

            Console.WriteLine("Session ID:" + sessionId);
            Console.WriteLine(response);

            Console.WriteLine("Reply ussd request:");

            try {
                response = ussd
                           .SetAddress("9065272450")
                           .SetSessionId(sessionId)
                           .SetSenderAddress(SHORT_CODE)
                           .SetUssdMessage("Simple USSD \n1: Foo \n1: Foo")
                           .SetFlash(false)
                           .ReplyUssdRequest()
                           .GetDynamicResponse();

                Console.WriteLine("Response: -->");
                Console.WriteLine(response);
            } catch (WebException e) {
                Console.WriteLine(new System.IO.StreamReader(e.Response.GetResponseStream()).ReadToEnd());
            }
        }
 public async Task <IHttpActionResult> Index(UssdRequest request)
 {
     //todo: properly configure redis before proceeding....
     return(Ok(await Ussd.Process(new RedisStore(), request, "Main", "Start")));
 }
Example #5
0
 public async Task <IHttpActionResult> Index(UssdRequest request)
 {
     return(Ok(await Ussd.Process(new RedisStore(), request, "Main", "Start", null,
                                  new MongoDbLoggingStore("mongodb://localhost", "demoussd"))));
 }
 public async Task <IHttpActionResult> Index(UssdRequest request)
 {
     return(Ok(await Ussd.Process(new RedisStore(), request, "Main", "Menu")));
 }