diff --git a/Business/Mobile/IMobileServices.cs b/Business/Mobile/IMobileServices.cs index cfc6e8d..b8d0162 100644 --- a/Business/Mobile/IMobileServices.cs +++ b/Business/Mobile/IMobileServices.cs @@ -96,6 +96,8 @@ namespace Business.Mobile JsonRxResponse GetFieldsByProduct(MappingType type, string customer, string receiverId, string payoutPartner); JsonRxResponse ValidateReferralCode(string referralCode); + JsonRxResponse TempUserRegister(TempUserRegisterModel tempUserRegister); + //JsonRxResponse QueryAddress(string postCode); } } \ No newline at end of file diff --git a/Business/Mobile/MobileServices.cs b/Business/Mobile/MobileServices.cs index 92ceab9..f998b25 100644 --- a/Business/Mobile/MobileServices.cs +++ b/Business/Mobile/MobileServices.cs @@ -3117,5 +3117,63 @@ namespace Business.Mobile return jsonRx; } } + + public JsonRxResponse TempUserRegister(TempUserRegisterModel tempUserRegister) + { + var lang = Convert.ToString(CallContext.GetData(Constants.Language)); + + JsonRxResponse res = new JsonRxResponse(); + try + { + string fullName = tempUserRegister.FullName; + string mobileNo = tempUserRegister.MobileNumber; + string enumString = string.Empty; + string regStep = tempUserRegister.RegStep; + + if (regStep == "1") + { + var ds = _requestServices.GetCustId(); + string custId = ""; + if (ds.Tables[0].Rows.Count > 0) + { + custId = ds.Tables[0].Rows[0]["tempCustId"]?.ToString(); + } + + int newCustId = 1; + tempUserRegister.tempCustId = newCustId.ToString(); + + if (!string.IsNullOrEmpty(custId)) + { + newCustId = int.Parse(custId) + 1; + tempUserRegister.tempCustId = newCustId.ToString(); + } + } + + else if (regStep == "2") + { + if (!tempUserRegister.Email.IsValidEmail()) + { + enumString = RESPONSE_MSG.NEW_USER_REGISTER_FAIL_4.ToString(); ; + var map = Utilities.GetLanguageMapping(enumString, lang); + res.SetResponse("100", map.Message); + + return res; + } + } + + tempUserRegister.MobileNumber = tempUserRegister.MobileNumber.getUKFormattedNumber(); + + res = _requestServices.TempUserRegister(tempUserRegister); + + Log.Debug("TempUserRegister | completed with db response. " + "ErrorCode: " + res.ErrorCode + " Msg: " + res.Msg); + return res; + } + catch (Exception ex) + { + Log.Error("Something Went Wrong, Please Try Again!!", ex); + res.SetResponse("1", "Error occurred while registering the customer."); + return res; + } + } } } \ No newline at end of file diff --git a/Common/Common.csproj b/Common/Common.csproj index 481963c..7b6d6cb 100644 --- a/Common/Common.csproj +++ b/Common/Common.csproj @@ -97,6 +97,7 @@ + @@ -107,6 +108,7 @@ + diff --git a/Common/Model/CustomerRegister/NewUserRegisterModel.cs b/Common/Model/CustomerRegister/NewUserRegisterModel.cs index 761ed02..84bc4e9 100644 --- a/Common/Model/CustomerRegister/NewUserRegisterModel.cs +++ b/Common/Model/CustomerRegister/NewUserRegisterModel.cs @@ -38,7 +38,7 @@ namespace Common.Model.CustomerRegister public string Nationality { get; set; } [Required] public string Gender { get; set; } + public string TempCustId { get; set; } - } } diff --git a/Common/Model/CustomerRegister/TempUserRegisterModel.cs b/Common/Model/CustomerRegister/TempUserRegisterModel.cs new file mode 100644 index 0000000..6af3d0e --- /dev/null +++ b/Common/Model/CustomerRegister/TempUserRegisterModel.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Common.Model.CustomerRegister +{ + public class TempUserRegisterModel + { + [Required(ErrorMessage = "Full Name is required.")] + public string FullName { get; set; } + [Required] + public string MobileNumber { get; set; } + public string Email { get; set; } + public string AppVersion { get; set; } + public string phoneBrand { get; set; } + public string phoneOs { get; set; } + public string fcmId { get; set; } + public string osVersion { get; set; } + public string RegStep { get; set; } + public string tempCustId { get; set; } + public string flag { get; set; } + } +} diff --git a/JsonRx/Api/CustomerController.cs b/JsonRx/Api/CustomerController.cs index ca4c93e..b24efc7 100644 --- a/JsonRx/Api/CustomerController.cs +++ b/JsonRx/Api/CustomerController.cs @@ -120,14 +120,14 @@ namespace JsonRx.Api Validate(newUserRegister); if (ModelState.IsValid) { - // newUserRegister.phoneOs = Util.GetDeviceType(Request); - newUserRegister.FullName= newUserRegister.FullName.ToTitleCase(TitleCase.All); + // newUserRegister.phoneOs = Util.GetDeviceType(Request); + newUserRegister.FullName = newUserRegister.FullName.ToTitleCase(TitleCase.All); var custRegisterResponse = _requestServices.NewUserRegister(newUserRegister); Log.Debug("NewUserRegister | RESPONSE : " + JsonConvert.SerializeObject(custRegisterResponse)); return Ok(custRegisterResponse); } - return ModelValidationError(ModelState,"100"); + return ModelValidationError(ModelState, "100"); } /// @@ -162,14 +162,14 @@ namespace JsonRx.Api { DepositSlip request = new DepositSlip(); - request.UserId= HttpContext.Current.Request["userId"]; + request.UserId = HttpContext.Current.Request["userId"]; request.Amount = HttpContext.Current.Request["Amount"]; request.Remarks = HttpContext.Current.Request["Remarks"]; LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid(); LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "DepositSlip"; LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = request.UserId; - + Log.Debug("DepositSlip | " + JsonConvert.SerializeObject(request)); var depositResponse = _requestServices.DepositSlip(request); @@ -206,7 +206,7 @@ namespace JsonRx.Api LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid(); LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "RegisterKyc"; LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = HttpContext.Current.Request["userId"]; - LogicalThreadContext.Properties[LoggerProperty.IPADDRESS] = HttpContext.Current.Request["TrustDocId"] != null ? HttpContext.Current.Request["TrustDocId"] : ""; + LogicalThreadContext.Properties[LoggerProperty.IPADDRESS] = HttpContext.Current.Request["TrustDocId"] != null ? HttpContext.Current.Request["TrustDocId"] : ""; //Log.Debug("RegisterKyc | REQUEST : " + HttpContext.Current.Request["userId"]); //var fcmid = Util.getJWTTokenClaim(Request.GetJWTToken(), "ClientFcmId"); @@ -378,14 +378,14 @@ namespace JsonRx.Api /// /// /// - protected IHttpActionResult ModelValidationError(ModelStateDictionary modelState, string error="") + protected IHttpActionResult ModelValidationError(ModelStateDictionary modelState, string error = "") { var modelErrors = modelState.Select(x => x.Value.Errors) .Where(y => y.Count > 0) .First()[0].ErrorMessage; JsonRxResponse jsonRx = new JsonRxResponse() { - ErrorCode = error??"1", + ErrorCode = error ?? "1", Msg = string.IsNullOrEmpty(modelErrors) ? "It seems like incorrect Json input(s)." : modelErrors, Data = "" }; @@ -412,5 +412,64 @@ namespace JsonRx.Api } return ModelValidationError(ModelState); } + + /// + /// + /// + /// + [HttpPost] + [ApplicationLevelAuthentication] + [Route("mobile/tempUserRegister")] + public IHttpActionResult TempUserRegister(TempUserRegisterModel tempUserRegister) + { + var processid = Guid.NewGuid().ToString(); + LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = processid; + LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = tempUserRegister.Email; + LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "TempUserRegister"; + + Log.Debug("TempUserRegister | REQUEST : " + JsonConvert.SerializeObject(tempUserRegister)); + + JsonRxResponse res = new JsonRxResponse(); + + if (string.IsNullOrEmpty(tempUserRegister.MobileNumber)) + { + res.SetResponse("100", "Mobile Number is required!"); + return Ok(res); + } + + if (string.IsNullOrEmpty(tempUserRegister.Email)) + { + tempUserRegister.RegStep = "1"; + tempUserRegister.flag = "sign-up-temp-cust"; + } + else + { + tempUserRegister.RegStep = "2"; + tempUserRegister.flag = "update-temp-cust"; + } + + if (tempUserRegister.RegStep == "2") + { + if (string.IsNullOrEmpty(tempUserRegister.Email)) + { + res.SetResponse("100", "Email is required!"); + return Ok(res); + } + } + Validate(tempUserRegister); + if (ModelState.IsValid) + { + tempUserRegister.FullName = tempUserRegister.FullName.ToTitleCase(TitleCase.All); + var custRegisterResponse = _requestServices.TempUserRegister(tempUserRegister); + if (custRegisterResponse.ErrorCode == "0") + { + tempUserRegister.tempCustId = custRegisterResponse.Id; + } + Log.Debug("TempUserRegister | RESPONSE : " + JsonConvert.SerializeObject(custRegisterResponse)); + + return Ok(custRegisterResponse); + } + return ModelValidationError(ModelState, "100"); + } } } \ No newline at end of file diff --git a/Repository/Mobile/IMobileServicesRepo.cs b/Repository/Mobile/IMobileServicesRepo.cs index 86a84e7..829a4c3 100644 --- a/Repository/Mobile/IMobileServicesRepo.cs +++ b/Repository/Mobile/IMobileServicesRepo.cs @@ -104,5 +104,9 @@ namespace Repository.Mobile //ataSet StaticQueryAddress(); List GetPaymentMethod(string receiverId, string pcountryid); + + JsonRxResponse TempUserRegister(TempUserRegisterModel tempUserRegister); + + DataSet GetCustId(); } } \ No newline at end of file diff --git a/Repository/Mobile/MobileServicesRepo.cs b/Repository/Mobile/MobileServicesRepo.cs index c0cc4d0..3931d9e 100644 --- a/Repository/Mobile/MobileServicesRepo.cs +++ b/Repository/Mobile/MobileServicesRepo.cs @@ -1340,8 +1340,9 @@ namespace Repository.Mobile sql += ", @address1 = " + _dao.FilterString(newUserRegister.Address1); sql += ", @address2 = " + _dao.FilterString(newUserRegister.Address2); sql += ", @city = " + _dao.FilterString(newUserRegister.City); - sql += ", @gender = " + _dao.FilterString(newUserRegister.Gender); - + sql += ", @gender = " + _dao.FilterString(newUserRegister.Gender); + sql += ", @tempCustId = " + _dao.FilterString(newUserRegister.TempCustId); + if (!string.IsNullOrEmpty(newUserRegister.FullName)) { var str = newUserRegister.FullName.Trim().Split(' '); @@ -3244,5 +3245,35 @@ namespace Repository.Mobile return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Id = res.Id, Extra = res.Extra }; } + + public JsonRxResponse TempUserRegister(TempUserRegisterModel tempUserRegister) + { + var lang = Convert.ToString(CallContext.GetData(Constants.Language)); + + var sql = "EXEC JsonRx_Proc_UserRegistration_V2"; + sql += " @flag = " + _dao.FilterString(tempUserRegister.flag); + sql += ", @fullName = " + _dao.FilterString(tempUserRegister.FullName); + sql += ", @mobile = " + _dao.FilterString(tempUserRegister.MobileNumber); + sql += ", @username = " + _dao.FilterString(tempUserRegister.Email); + sql += ", @appVersion = " + _dao.FilterString(tempUserRegister.AppVersion); + sql += ", @phoneBrand = " + _dao.FilterString(tempUserRegister.phoneBrand); + sql += ", @phoneOs = " + _dao.FilterString(tempUserRegister.phoneOs); + sql += ", @fcmId = " + _dao.FilterString(tempUserRegister.fcmId); + sql += ", @osVersion = " + _dao.FilterString(tempUserRegister.osVersion); + sql += ", @tempCustId = " + _dao.FilterString(tempUserRegister.tempCustId); + + Log.DebugFormat("TempUserRegister | SQL : {0}", sql); + + var res = _dao.ParseDbResult(sql); + + return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = res.Msg, Id = res.Id, Extra = res.Extra }; + } + + public DataSet GetCustId() + { + var sql = "EXEC JsonRx_Proc_UserRegistration_V2 @flag='get-id'"; + Log.DebugFormat("GetCustId | SQL : {0} | {1}", sql); + return _dao.ExecuteDataset(sql); + } } } \ No newline at end of file