Exemplo n.º 1
0
        private void Chat(string userAddress, string receivedMsg)
        {
            try
            {
                string[] receivedMsgArray = receivedMsg.Split(' ');
                var      key  = receivedMsgArray[0].ToUpper();
                var      code = receivedMsgArray[1].ToUpper();

                if (receivedMsgArray.Length < 3)
                {
                    Sms.Send(userAddress, Resources.Error_InvalidChatFormat);
                    throw new Exception();
                }

                var startIndex = string.Format("{0} {1} ", key, code).Length;
                var message    = receivedMsg.Substring(startIndex);

                ChatAppDM dm = new ChatAppDM();
                var       receiverAddress = dm.GetUserAddress(code);

                if (!string.IsNullOrEmpty(receiverAddress))
                {
                    Sms.Send(receiverAddress, message);
                }
                else
                {
                    Sms.Send(userAddress, Resources.Error_InvalidCode);
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.ToString());
                throw;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Charge from users for chat app
        /// </summary>
        //[HttpPost]
        //public async Task<IHttpActionResult> Charge()
        //{
        //    //URL: http://localhost:2513/41440/v1/chat/charge
        //    IdeaMartStatusResponse statusResponse = new IdeaMartStatusResponse();
        //    Log.TraceStart();
        //    try
        //    {
        //        ChatAppDM dm = new ChatAppDM();
        //        var userList = dm.GetAllUserAddressList();

        //        foreach (var userAddress in userList)
        //        {
        //            var chargingResponse = await ChargeUser(userAddress);
        //        }

        //        statusResponse.requestId = "User Chat App";
        //        statusResponse.statusCode = Consts.SUCCESS;
        //        statusResponse.statusDetail = "Charging service successful for User Chat App.";
        //        statusResponse.timeStamp = DateTime.UtcNow.ToString();
        //        statusResponse.version = "1.0";
        //    }
        //    catch (Exception ex)
        //    {
        //        Log.Error(ex.ToString());
        //        return BadRequest();
        //    }
        //    Log.TraceEnd();

        //    return Ok(statusResponse);
        //}

        #endregion

        #region private methods

        private async Task <IdeaMartStatusResponseDto> RegisterUser(string userAddress)
        {
            //Log.TraceStart();
            try
            {
                //Subscribe User
                Subscription subscription = new Subscription();
                var          response     = await subscription.Add(_appId, _password, userAddress);

                if (response != null)
                {
                    ChatAppDM dm = new ChatAppDM();

                    if (response.statusCode == Consts.SUCCESS)//subscription successful
                    {
                        // var chargingResponse = await ChargeUser(userAddress);
                        //ChargeUser(userAddress);

                        //Generate code
                        string code = Common.GenerateCode(_codeLength);
                        while (dm.CodeExists(code))
                        {
                            code = Common.GenerateCode(_codeLength);
                        }

                        //Save in DB
                        var userId = dm.SubscribeUser(userAddress, code);

                        if (userId > 0)
                        {
                            var message = string.Format(Resources.Info_RegisterSuccess, code.ToUpper());
                            Sms.Send(userAddress, message);
                        }
                        else
                        {
                            Log.Error(string.Format(Resources.Error_UserSaveFailed, userAddress));
                        }
                    }
                    else if (response.statusCode == Consts.USER_ALREADY_REGISTERED)
                    {
                        string code = dm.GetUserCode(userAddress);

                        var message = string.Format(Resources.Info_UserAlreadyRegistered, code);
                        Sms.Send(userAddress, message);
                    }
                    else
                    {
                        var message = string.Format(response.statusDetail);
                        Sms.Send(userAddress, message);
                    }
                }
                //Log.TraceEnd();
                return(response);
            }
            catch (Exception ex)
            {
                Log.Error(ex.ToString());
                throw;
            }
        }
Exemplo n.º 3
0
        //private async Task<DirectDebitResponseDto> ChargeUser(string userAddress)
        //{
        //    Caas caas = new Caas();
        //    var chargingResponse = await caas.Charge(_appId, _password, userAddress);

        //    if (chargingResponse.statusCode != Consts.SUCCESS)
        //    {
        //        Log.Error(string.Format(Resources.Error_ChargeFailed, userAddress));
        //        //return false;
        //    }
        //    return chargingResponse;
        //}

        private async Task <IdeaMartStatusResponseDto> UnregisterUser(string userAddress)
        {
            //Log.TraceStart();
            try
            {
                //Unsubscribe User
                Subscription subscription = new Subscription();
                var          response     = await subscription.Remove(_appId, _password, userAddress);

                if (response != null)
                {
                    if (response.statusCode == Consts.SUCCESS)//subscription removed successfully
                    {
                        //Save in DB
                        ChatAppDM dm     = new ChatAppDM();
                        var       status = dm.UnsubscribeUser(userAddress);

                        if (status)
                        {
                            var message = Resources.Info_UnregisterSuccess;
                            Sms.Send(userAddress, message);
                        }
                    }
                    else if (response.statusCode == Consts.USER_NOT_REGISTERED)
                    {
                        var message = string.Format(Resources.Info_UserNotRegistered);
                        Sms.Send(userAddress, message);
                    }
                    else
                    {
                        var message = response.statusDetail;
                        Sms.Send(userAddress, message);
                    }
                }
                //Log.TraceEnd();
                return(response);
            }
            catch (Exception ex)
            {
                Log.Error(ex.ToString());
                throw;
            }
        }
Exemplo n.º 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));
        }