Пример #1
0
        /// <summary>
        /// Remove linked users
        /// </summary>
        /// <param name="userAddress">User address</param>
        private void RemoveUser(string userAddress)
        {
            //Log.TraceStart();
            try
            {
                CoupleChatDM dm = new CoupleChatDM();

                //Save in DB
                var coupledUserAddress = dm.GetCoupleUserNumberByUserNumber(userAddress);
                var status             = dm.RemoveLinkedUser(userAddress);

                if (status)
                {
                    var message = Resources.Info_RemoveLinkedUser;
                    Sms.Send(userAddress, message);

                    if (!string.IsNullOrEmpty(coupledUserAddress))
                    {
                        Sms.Send(coupledUserAddress, message);
                    }
                }
                else
                {
                    Log.Error(string.Format(Resources.Error_RemoveLinkedUserFailed));
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.ToString());
                throw;
            }
        }
Пример #2
0
        /// <summary>
        /// Get user code
        /// </summary>
        /// <param name="userAddress">Sender's address</param>
        private void GetCode(string userAddress)
        {
            //Log.TraceStart();
            try
            {
                CoupleChatDM dm = new CoupleChatDM();

                var code = dm.GetUserCode(userAddress);

                if (!string.IsNullOrEmpty(code))
                {
                    var message = string.Format(Resources.Info_GetUserCode, code);
                    Sms.Send(userAddress, message);
                }
                else
                {
                    Log.Error(string.Format(Resources.Error_GetUserCodeFailed));
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.ToString());
                throw;
            }
        }
Пример #3
0
        /// <summary>
        /// Register user
        /// </summary>
        /// <param name="subscriberId">User address</param>
        private void RegisterUser(string subscriberId)
        {
            //Log.TraceStart();
            try
            {
                CoupleChatDM dm = new CoupleChatDM();

                //Generate code and send
                string code = Common.GenerateCode(_codeLength);

                while (dm.CodeExists(code))
                {
                    code = Common.GenerateCode(_codeLength);
                }
                //Save in DB
                var userId = dm.AddUser(subscriberId, code);

                if (userId > 0)
                {
                    var message = string.Format(Resources.Info_RegisterSuccess, code.ToUpper());
                    Sms.Send(subscriberId, message);
                }
                else
                {
                    Log.Error(string.Format(Resources.Error_UserSaveFailed, subscriberId));
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.ToString());
                throw;
            }
        }
Пример #4
0
        /// <summary>
        /// Link user with another user by secret code
        /// </summary>
        /// <param name="sourceAddress">User address</param>
        /// <param name="coupleCode">Secret code of another user to be linked</param>
        private void LinkUser(string sourceAddress, string coupleCode)
        {
            //Log.TraceStart();
            try
            {
                CoupleChatDM dm = new CoupleChatDM();
                //When code is given then user should be linked
                if (!string.IsNullOrEmpty(coupleCode))
                {
                    var coupleUserAddress = dm.GetUserNumberByCode(coupleCode);

                    if (string.IsNullOrEmpty(coupleUserAddress))
                    {
                        var message = string.Format(Resources.Error_InvalidCode);
                        Sms.Send(sourceAddress, message);
                    }
                    if (coupleUserAddress == sourceAddress)
                    {
                        var message = string.Format(Resources.Error_InvalidCode);
                        Sms.Send(sourceAddress, message);
                    }
                    else if (dm.IsUserLinked(sourceAddress))
                    {
                        var message = string.Format(Resources.Error_UserAlreadyLinked);
                        Sms.Send(sourceAddress, message);
                    }
                    else if (dm.IsUserLinked(coupleUserAddress))
                    {
                        var message = string.Format(Resources.Error_CodeAlreadyLinked);
                        Sms.Send(sourceAddress, message);
                    }
                    else
                    {
                        //Save in DB
                        var status = dm.LinkUser(sourceAddress, coupleUserAddress);
                        if (status)
                        {
                            var message = string.Format(Resources.Info_RegisterSuccessCoupleUser);
                            Sms.Send(sourceAddress, message);
                            //Send OK message to first user
                            Sms.Send(coupleUserAddress, message);
                        }
                        else
                        {
                            Log.Error(string.Format(Resources.Error_AddAndLinkUserFailed, sourceAddress));
                            var message = string.Format(Resources.Error_CannotCoupleUser);
                            Sms.Send(sourceAddress, message);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.ToString());
                throw;
            }
        }
Пример #5
0
 /// <summary>
 /// Unregister user
 /// </summary>
 /// <param name="subscriberId">User address</param>
 private void UnregisterUser(string subscriberId)
 {
     try
     {
         //Save in DB
         CoupleChatDM dm     = new CoupleChatDM();
         var          status = dm.RemoveUser(subscriberId);
     }
     catch (Exception ex)
     {
         Log.Error(ex.ToString());
         throw;
     }
 }
Пример #6
0
        /// <summary>
        /// Get active user count
        /// </summary>
        /// <param name="userAddress">Sender's address</param>
        private void GetUserCount(string userAddress)
        {
            //Log.TraceStart();
            try
            {
                CoupleChatDM dm = new CoupleChatDM();

                int count    = dm.GetActiveUserCount();
                int cplCount = dm.GetCoupleUserCount();
                Sms.Send(userAddress, string.Format(Resources.Info_UserCount, count.ToString(), cplCount.ToString()));
            }
            catch (Exception ex)
            {
                Log.Error(ex.ToString());
                throw;
            }
        }
Пример #7
0
        /// <summary>
        /// Send sms to user given by a secret code
        /// </summary>
        /// <param name="userAddress">Sender's address</param>
        /// <param name="code">Receiver's secret code</param>
        /// <param name="receivedMsg">Sms message</param>
        private void SendSmsByCode(string userAddress, string code, string receivedMsg)
        {
            try
            {
                CoupleChatDM dm = new CoupleChatDM();
                var          receiverAddress = dm.GetUserNumberByCode(code);

                if (!string.IsNullOrEmpty(receiverAddress))
                {
                    Sms.Send(receiverAddress, receivedMsg);
                }
                else
                {
                    Sms.Send(userAddress, Resources.Error_InvalidCode);
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.ToString());
                throw;
            }
        }
Пример #8
0
        /// <summary>
        /// Send sms to user who is linked by secret code
        /// </summary>
        /// <param name="userAddress">Sender's address</param>
        /// <param name="message">Sms message</param>
        private void SendSmsToLinkedUser(string userAddress, string message)
        {
            try
            {
                CoupleChatDM dm = new CoupleChatDM();
                var          receiverAddress = dm.GetCoupleUserNumberByUserNumber(userAddress);

                if (!string.IsNullOrEmpty(receiverAddress))
                {
                    Sms.Send(receiverAddress, message);
                }
                else
                {
                    Sms.Send(userAddress, Resources.Error_NotLinkedUser);
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.ToString());
                throw;
            }
        }
Пример #9
0
        private async Task <IdeaMartStatusResponse> RegisterUser(string userAddress, string coupleCode)
        {
            Log.TraceStart();
            try
            {
                //Subscribe User
                Subscription subscription = new Subscription();
                var          response     = await subscription.Add(_appId, _password, userAddress);

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

                    if (response.statusCode == Consts.SUCCESS)//subscription successful
                    {
                        Caas caas             = new Caas();
                        var  chargingResponse = await caas.Charge(_appId, _password, userAddress);

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

                        //Generate code
                        if (string.IsNullOrEmpty(coupleCode))
                        {
                            string code = Common.GenerateCode(_codeLength);
                            while (dm.CodeExists(code))
                            {
                                code = Common.GenerateCode(_codeLength);
                            }
                            //Save in DB
                            var userId = dm.AddUser(userAddress, code);

                            if (userId > 0)
                            {
                                var message = string.Format(Resources.Info_RegisterSuccess, code.ToUpper());
                                var result  = 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);
                        var result  = Sms.Send(userAddress, message);
                    }
                    else
                    {
                        var message = string.Format(response.statusDetail);
                        var result  = Sms.Send(userAddress, message);
                    }
                }
                Log.TraceEnd();
                return(response);
            }
            catch (Exception ex)
            {
                Log.Error(ex.ToString());
                throw;
            }
        }