/// <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; } }
/// <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; } }
/// <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; } }
/// <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; } }
/// <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; } }
/// <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; } }
/// <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; } }
/// <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; } }
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; } }