示例#1
0
        //public async Task<IHttpActionResult> Send(IdeaMartResponse ideaMartResponse)
        public async Task <IHttpActionResult> Send(IdeaMartResponse ideaMartResponse)//(MoSmsReq moSmsReq)//
        {
            //SIMULATOR Application Data: //URL: http://localhost:2513/api/v1/sms/send

            IdeaMartStatusResponse statusResponse = new IdeaMartStatusResponse();
            var receivedMsg = ideaMartResponse.message;
            var userAddress = ideaMartResponse.sourceAddress;

            try
            {
                var receivedMsgArray = receivedMsg.Split(' ');

                //Validate message
                if (receivedMsgArray == null || receivedMsgArray.Length < 2)
                {
                    SendSmsToUser(userAddress, "Invalid input message. Please type correctly.");
                    BadRequest();
                }

                var key1 = receivedMsgArray[0].ToUpper();
                var key2 = receivedMsgArray[1].ToUpper();

                if (key1 == ShortKey.REG.ToString() && key2 == ShortKey.CC.ToString())// Register
                {
                    RegisterUser(userAddress);
                }
                if (key1 == ShortKey.UNREG.ToString() && key2 == ShortKey.CC.ToString())// Unregister
                {
                    UnregisterUser(userAddress);
                }
                else if (key1 == ShortKey.CC.ToString() && key2 == ShortKey.ADD.ToString())// Add another user (couple user)
                {
                    CoupleUser(userAddress, receivedMsgArray);
                }
                else if (key1 == ShortKey.CC.ToString() && key2 == ShortKey.OK.ToString())// Accept request from couple user
                {
                    AcceptUser(userAddress, receivedMsgArray);
                }
                else if (key1 == ShortKey.CC.ToString() && key2 == ShortKey.END.ToString())// Reject/End request from couple user
                {
                    CancelUser(userAddress, receivedMsgArray);
                }
                else if (key1 == ShortKey.CC.ToString() && key2 == ShortKey.SEND.ToString())// send chat sms
                {
                    Chat(userAddress, receivedMsgArray, receivedMsg);
                }
                return(Ok());
            }
            catch (Exception ex)
            {
                Log.Error(ex.ToString());

                return(BadRequest());
            }
        }
        public async Task <IHttpActionResult> Send(IdeaMartResponse ideaMartResponse)
        {
            //SIMULATOR Application Data: //URL: http://localhost:2513/api/v1/couplechat/send

            IdeaMartStatusResponse statusResponse = new IdeaMartStatusResponse();
            var receivedMsg = ideaMartResponse.message;
            var userAddress = ideaMartResponse.sourceAddress;

            try
            {
                var receivedMsgArray = receivedMsg.Split(' ');

                //Validate message
                if (receivedMsgArray == null || receivedMsgArray.Length < 2)
                {
                    Sms.Send(userAddress, Resources.Error_InvalidInputMessage);
                    BadRequest();
                }

                var key1 = receivedMsgArray[0].ToUpper();
                var key2 = receivedMsgArray[1].ToUpper();

                if (key1 == ShortKey.REG.ToString() && key2 == ShortKey.CC.ToString())// Register
                {
                    var code = string.Empty;
                    if (receivedMsgArray.Length > 2)
                    {
                        code = receivedMsgArray[2].ToUpper();//for couple user
                    }
                    statusResponse = await RegisterUser(userAddress, code);
                }
                if (key1 == ShortKey.UNREG.ToString() && key2 == ShortKey.CC.ToString())// Unregister
                {
                    statusResponse = await UnregisterUser(userAddress);
                }
                else if (key1 == ShortKey.CC.ToString() && key2.Length == _codeLength)// send chat sms
                {
                    Chat(userAddress, receivedMsg);
                    statusResponse.requestId    = ideaMartResponse.requestId;
                    statusResponse.statusCode   = Consts.SUCCESS;
                    statusResponse.statusDetail = Consts.SUCCESS;
                    statusResponse.timeStamp    = DateTime.UtcNow.ToString();
                    statusResponse.version      = ideaMartResponse.version;
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.ToString());
                return(BadRequest());
            }
            return(Ok(statusResponse));
        }
示例#3
0
        public async Task <IHttpActionResult> Send(IdeaMartResponse ideaMartresponse)
        {
            //there are two constructors available
            //we will use the simplest one here
            //Only app id and the password sent as params
            UssdAPI ussdApi = new UssdAPI("APP_000001", "password");

            //when you are ready to go with production change below to true
            ussdApi.IsInProduction = false;
            //we check first if the request from ideamart is initiation
            if (ideaMartresponse.ussdOperation == "mo-init")
            {
                //supprissed ?
                //Yes! its that simple to check the operation type

                //All right
                //here comes the magical part
                IdeaMartStatusResponse statusResponse = new IdeaMartStatusResponse();
                statusResponse = await ussdApi.SendRequestAsync("Hello world! \r\n 1. Press one to do something.", ideaMartresponse.sessionId, UssdAPI.UssdOperation.mt_cont, ideaMartresponse.sourceAddress);

                return(Ok(statusResponse));
            }

            //Happy?
            //let's implement continue operation
            if (ideaMartresponse.ussdOperation == "mo-cont")
            {
                switch (ideaMartresponse.message)
                {
                case "1":
                    IdeaMartStatusResponse statusresponse = new IdeaMartStatusResponse();
                    statusresponse = await ussdApi.SendRequestAsync("You pressed one", ideaMartresponse.sessionId, UssdAPI.UssdOperation.mt_cont, ideaMartresponse.sourceAddress);

                    return(Ok(statusresponse));

                default:
                    break;
                }

                //TO-DO your self
                //manage page navigation
                //store data into a database if you need them
            }

            return(BadRequest());
        }
示例#4
0
        public async Task <IHttpActionResult> Charge()
        {
            //URL: http://localhost:2513/api/v1/chat/charge
            IdeaMartStatusResponse statusResponse = new IdeaMartStatusResponse();

            Log.TraceStart();
            try
            {
                ChatAppDM dm       = new ChatAppDM();
                var       userList = dm.GetAllUserAddressList();

                foreach (var userAddress in userList)
                {
                    Caas caas     = new Caas();
                    var  response = await caas.Charge(_appId, _password, userAddress);

                    if (response.statusCode == Consts.SUCCESS)
                    {
                        //var status = dm.ChargeUser(userAddress);
                    }
                    else
                    {
                        Log.Error(string.Format(Resources.Error_ChargeFailed, userAddress));
                    }
                }

                statusResponse.requestId    = "";
                statusResponse.statusCode   = Consts.SUCCESS;
                statusResponse.statusDetail = Consts.SUCCESS;
                statusResponse.timeStamp    = DateTime.UtcNow.ToString();
                statusResponse.version      = "1.0";
            }
            catch (Exception ex)
            {
                Log.Error(ex.ToString());
                return(BadRequest());
            }
            Log.TraceEnd();

            return(Ok(statusResponse));
        }
示例#5
0
        static readonly string _baseUrl = "http://localhost:7000/";// ConfigurationManager.AppSettings["baseUrl"];

        #region Subscription APIs
        /// <summary>
        /// Subscribe user from an application.
        /// </summary>
        /// <param name="applicationId"></param>
        /// <param name="password"></param>
        /// <param name="subscriberId"></param>
        /// <returns></returns>
        public async Task <IdeaMartStatusResponse> Add(string applicationId, string password, string subscriberId)
        {
            Log.TraceStart();
            IdeaMartStatusResponse response = null;

            try
            {
                SubscriptionRequestDto subscriptionRequestDto = new SubscriptionRequestDto();
                subscriptionRequestDto.applicationId = applicationId;
                subscriptionRequestDto.password      = password;
                subscriptionRequestDto.subscriberId  = subscriberId;
                subscriptionRequestDto.action        = "1";
                subscriptionRequestDto.version       = "1.0";

                var subscriptionResponse = await SubscribeUser(subscriptionRequestDto);

                if (subscriptionResponse.IsSuccessStatusCode)
                {
                    var result = subscriptionResponse.Content.ReadAsAsync <dynamic>().Result;

                    response              = new IdeaMartStatusResponse();
                    response.requestId    = result.requestId;
                    response.statusCode   = result.statusCode;
                    response.statusDetail = result.statusDetail;
                    response.timeStamp    = DateTime.UtcNow.ToString();
                    response.version      = result.version;
                }
                else
                {
                    Log.Error(Resources.Subscription_SubscriptionServiceFailed);
                }
            }
            catch (Exception ex)
            {
                Log.Exception(ex);
            }

            Log.TraceEnd();
            return(response);
        }
示例#6
0
        public async Task <IHttpActionResult> Send(IdeaMartResponse ideaMartResponse)
        {
            //SIMULATOR Application Data:
            //URL: http://localhost:2513/api/v1/Ussd/Send

            var     appId   = "App_000001";
            var     pwd     = "password";
            UssdAPI ussdApi = new UssdAPI(appId, pwd);

            ussdApi.IsInProduction = false;

            if (ideaMartResponse.ussdOperation == "mo-init")
            {
                IdeaMartStatusResponse statusResponse = new IdeaMartStatusResponse();
                statusResponse = await ussdApi.SendRequestAsync("My first app. \r\n 1.Press one to OK \r\n 2. Press two to cancel"
                                                                , ideaMartResponse.sessionId, UssdAPI.UssdOperation.mt_cont, ideaMartResponse.sourceAddress);

                return(Ok(statusResponse));
            }
            else if (ideaMartResponse.ussdOperation == "mo-cont" && ideaMartResponse.message == "1")
            {
                IdeaMartStatusResponse statusResponse = new IdeaMartStatusResponse();
                statusResponse = await ussdApi.SendRequestAsync("You Pressed 1."
                                                                , ideaMartResponse.sessionId, UssdAPI.UssdOperation.mt_cont, ideaMartResponse.sourceAddress);

                return(Ok(statusResponse));
            }
            else if (ideaMartResponse.ussdOperation == "mo-cont" && ideaMartResponse.message == "2")
            {
                IdeaMartStatusResponse statusResponse = new IdeaMartStatusResponse();
                statusResponse = await ussdApi.SendRequestAsync("You Pressed 2."
                                                                , ideaMartResponse.sessionId, UssdAPI.UssdOperation.mt_cont, ideaMartResponse.sourceAddress);

                return(Ok(statusResponse));
            }
            return(BadRequest());
        }