Browse Source

Merge branch 'feature/19315_Customer-Registration' of http://202.166.220.79:3000/IME-LONDON/CustomerPortal into feature/19315_Customer-Registration

feature/19315_Customer-Registration
Leeza Baidar 11 months ago
parent
commit
f7fcd8c92b
  1. 3
      CustomerOnlineV2/CustomerOnlineV2.Business/Business/RegisterBusiness/IRegisterBusiness.cs
  2. 10
      CustomerOnlineV2/CustomerOnlineV2.Business/Business/RegisterBusiness/RegisterBusiness.cs
  3. 12
      CustomerOnlineV2/CustomerOnlineV2.Repository/Repository/AccountRepository/AccountRepository.cs
  4. 1
      CustomerOnlineV2/CustomerOnlineV2.Repository/Repository/RegisterRepository/IRegisterRepository.cs
  5. 53
      CustomerOnlineV2/CustomerOnlineV2.Repository/Repository/RegisterRepository/RegisterRepository.cs
  6. 12
      CustomerOnlineV2/CustomerOnlineV2/Controllers/CustomerController.cs
  7. 6
      CustomerOnlineV2/CustomerOnlineV2/Program.cs
  8. 31
      CustomerOnlineV2/CustomerOnlineV2/Views/Account/ForceChangePassword.cshtml
  9. 41
      CustomerOnlineV2/CustomerOnlineV2/Views/Customer/CustomerProfile.cshtml
  10. 4
      CustomerOnlineV2/CustomerOnlineV2/Views/Shared/_Layout2.cshtml

3
CustomerOnlineV2/CustomerOnlineV2.Business/Business/RegisterBusiness/IRegisterBusiness.cs

@ -1,6 +1,7 @@
using CustomerOnlineV2.Common.Models;
using CustomerOnlineV2.Common.Models.AccountModel;
using CustomerOnlineV2.Common.Models.HomeModel;
using CustomerOnlineV2.Common.Models.ReceiverModel;
using CustomerOnlineV2.Common.Models.RegisterModel;
using System;
using System.Collections.Generic;
@ -14,6 +15,8 @@ namespace CustomerOnlineV2.Business.Business.RegisterBusiness
{
Task<CommonResponse> AddCustomers(OnlineCustomerRegisterModel register);
Task<AddressListResponse> GetAddressList(AddressRequest addressRequest);
Task<CustomerList> GetTranCustomerById(LoginResponse loginDetails);
Task<CustomerListModel> UpdateCustomers(CustomerListModel customer, string Id);
Task<CustomerNotificationModel> GetAllNotificationDetails(LoginResponse loginDetails);
Task<CustomerNotificationModel> GetRewardPoints(LoginResponse loginDetails);
Task<CustomerList> GetTranCustomerById(LoginResponse loginDetails);

10
CustomerOnlineV2/CustomerOnlineV2.Business/Business/RegisterBusiness/RegisterBusiness.cs

@ -39,7 +39,10 @@ namespace CustomerOnlineV2.Business.Business.RegisterBusiness
{
throw new NotImplementedException();
}
public async Task<CustomerList> GetTranCustomerById(LoginResponse loginDetails)
{
return await _registerRepository.GetTranCustomerById(loginDetails);
}
public async Task<CustomerNotificationModel> GetAllNotificationDetails(LoginResponse loginDetails)
{
return (CustomerNotificationModel)await _registerRepository.GetAllNotificationDetails(loginDetails);
@ -50,6 +53,11 @@ namespace CustomerOnlineV2.Business.Business.RegisterBusiness
return (CustomerList)await _registerRepository.GetTranCustomerById(loginDetails);
}
public async Task<CustomerListModel> UpdateCustomers(CustomerListModel model, string id)
{
var model1 = await _registerRepository.UpdateCustomers1(model, id);
return model1;
}
public async Task<CustomerNotificationModel> GetRewardPoints(LoginResponse loginDetails)
{
return (CustomerNotificationModel)await _registerRepository.GetRewardPoints(loginDetails);

12
CustomerOnlineV2/CustomerOnlineV2.Repository/Repository/AccountRepository/AccountRepository.cs

@ -73,13 +73,13 @@ namespace CustomerOnlineV2.Repository.Repository.AccountRepository
CommonResponse _response = new CommonResponse();
try
{
var sql = "EXEC PROC_DYNAMIC_TABLE";
sql += " @Flag = " + _connHelper.FilterString("ForceChange");
sql += ",@UserEmail = " + _connHelper.FilterString(logindetails.UserName);
var sql = "EXEC mobile_proc_ChangePassword";
//sql += " @Flag = " + _connHelper.FilterString("ForceChange");
sql += ",@userName = " + _connHelper.FilterString(logindetails.UserName);
sql += ",@OldPassword = " + _connHelper.FilterString(model.OldPassword);
sql += ",@Password = " + _connHelper.FilterString(model.NewPassword);
sql += ",@ConfirmPassword = " + _connHelper.FilterString(model.ConfirmNewPassword);
sql += ",@ipAddress = " + _connHelper.FilterString(model.IpAddress);
sql += ",@newPassword = " + _connHelper.FilterString(model.NewPassword);
//sql += ",@ConfirmPassword = " + _connHelper.FilterString(model.ConfirmNewPassword);
//sql += ",@ipAddress = " + _connHelper.FilterString(model.IpAddress);
_logger.LogDebug("ACCOUNTREPOSITORY | CHANGEPASSWORD | SQL | " + sql);
return _connHelper.ParseDbResult(sql);

1
CustomerOnlineV2/CustomerOnlineV2.Repository/Repository/RegisterRepository/IRegisterRepository.cs

@ -15,6 +15,7 @@ namespace CustomerOnlineV2.Repository.Repository.RegisterRepository
Task<CommonResponse> AddRegisterDetails(OnlineCustomerRegisterModel register);
Task<CustomerList> GetTranCustomerById(LoginResponse loginDetails);
Task<CustomerNotificationModel> GetAllNotificationDetails(LoginResponse loginDetails);
Task<CustomerListModel> UpdateCustomers1(CustomerListModel model, string id);
Task<CustomerNotificationModel> GetRewardPoints(LoginResponse loginDetails);
}
}

53
CustomerOnlineV2/CustomerOnlineV2.Repository/Repository/RegisterRepository/RegisterRepository.cs

@ -204,6 +204,59 @@ namespace CustomerOnlineV2.Repository.Repository.RegisterRepository
}
return await Task.FromResult(_response);
}
public async Task<CustomerListModel> UpdateCustomers1(CustomerListModel model, string id)
{
try
{
var sql = "EXEC mobile_proc_online_customerMaster_V1";
sql += " @flag = " + _connHelper.FilterString("update-address");
sql += ",@customerId =" + _connHelper.FilterString(id);
sql += ",@postalCode =" + _connHelper.FilterString(model.zipCode);
//sql += ",@nativeCountry =" + _connHelper.FilterString(model.NativeCountry);
sql += ",@address1 =" + _connHelper.FilterString(model.address);
sql += ",@address2 =" + _connHelper.FilterString(model.address2);
//_logger.LogDebug("RECEIVERREPOSITORY | GETRECEIVEDRDETAILS | SQL | " + sql);
var dt = _connHelper.ExecuteDataTable(sql);
if (dt == null || dt.Rows.Count <= 0)
{
model.ResponseCode = ResponseHelper.FAILED;
model.ResponseMessage = "DB Null Error!";
// _logger.LogError("RECEIVERREPOSITORY | GETRECEIVEDRDETAILS | DB RESPONSE | " + JsonConvert.SerializeObject(_response));
}
else
{
model.ResponseCode = ResponseHelper.SUCCESS;
model.ResponseMessage = ResponseMessageHelper.SUCCESS;
// _response.firstName = Convert.ToString(dt.Rows[0]["firstName"]);
// _response.middleName = Convert.ToString(dt.Rows[0]["middleName"]);
// _response.lastName1 = Convert.ToString(dt.Rows[0]["lastName1"]);
// _response.Country = Convert.ToString(dt.Rows[0]["Country"]);
// _response.Address = Convert.ToString(dt.Rows[0]["Address"]);
// _response.State = Convert.ToString(dt.Rows[0]["State"]);
}
}
catch (Exception ex)
{
model.ResponseCode = ResponseHelper.EXCEPTION;
model.ResponseMessage = "Exception occured: " + ex.Message;
//_logger.LogError("RECEIVERREPOSITORY | GETRECEIVEDRDETAILS | EXCEPTION | " + JsonConvert.SerializeObject(_response));
}
return await Task.FromResult(model);
}
public async Task<CustomerNotificationModel> GetRewardPoints(LoginResponse loginDetails)
{

12
CustomerOnlineV2/CustomerOnlineV2/Controllers/CustomerController.cs

@ -11,6 +11,7 @@ using Newtonsoft.Json;
using Serilog.Context;
using CustomerOnlineV2.Common.Helper;
using CustomerOnlineV2.Common.Models.HomeModel;
using CustomerOnlineV2.Common.Models.ReceiverModel;
namespace CustomerOnlineV2.Controllers
{
@ -105,6 +106,16 @@ namespace CustomerOnlineV2.Controllers
return await _registerBusiness.GetAllNotificationDetails(loginDetails);
}
[HttpPost]
[Authorization("UpdateCustomer")]
public async Task<CustomerListModel> UpdateCustomer(CustomerListModel customer, string id)
{
var loginDetails = HttpContext.GetLoginDetails();
var customer1 = await _registerBusiness.UpdateCustomers(customer, loginDetails.UserId);
return customer1;
}
[Authorization("Refer")]
public IActionResult Refer()
@ -117,7 +128,6 @@ namespace CustomerOnlineV2.Controllers
public async Task<CustomerNotificationModel> GetRewardDetails()
{
var loginDetails = HttpContext.GetLoginDetails();
return await _registerBusiness.GetRewardPoints(loginDetails);
}
}

6
CustomerOnlineV2/CustomerOnlineV2/Program.cs

@ -1,11 +1,13 @@
using CustomerOnlineV2.Api.API.TPApi;
using CustomerOnlineV2.Business.Business.AccountBusiness;
using CustomerOnlineV2.Business.Business.DocumentBusiness;
using CustomerOnlineV2.Business.Business.HomeBusiness;
using CustomerOnlineV2.Business.Business.ReceiverBusiness;
using CustomerOnlineV2.Business.Business.RegisterBusiness;
using CustomerOnlineV2.Business.Business.TransactionBusiness;
using CustomerOnlineV2.Repository.ConnectionHelper;
using CustomerOnlineV2.Repository.Repository.AccountRepository;
using CustomerOnlineV2.Repository.Repository.DocumentRepository;
using CustomerOnlineV2.Repository.Repository.HomeRepository;
using CustomerOnlineV2.Repository.Repository.ReceiverRepository;
using CustomerOnlineV2.Repository.Repository.RegisterRepository;
@ -53,8 +55,8 @@ builder.Services.AddScoped<IReceiverRepository, ReceiverRepository>();
builder.Services.AddScoped<IRegisterBusiness, RegisterBusiness>();
builder.Services.AddScoped<IRegisterRepository, RegisterRepository>();
builder.Services.AddScoped<IDocumentRepository, DocumentRepository>();
builder.Services.AddScoped<IDocumentBusiness, DocumentBusiness>();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();

31
CustomerOnlineV2/CustomerOnlineV2/Views/Account/ForceChangePassword.cshtml

@ -90,10 +90,12 @@
</div>
<div class="form-floating mb-3">
<input type="password" class="form-control" asp-for="NewPassword" placeholder="IMe12312@3asdfk43933" required>
<span id="password-validation" class="text-danger"></span>
<label for="floatingInput">New Password</label>
</div>
<div class="form-floating mb-3">
<input type="password" class="form-control" asp-for="ConfirmNewPassword" placeholder="IMe12312@3asdfk43933" required>
<span id="confirm-password-validation" class="text-danger"></span>
<label for="floatingInput">Confirm Password</label>
</div>
<div class="col-lg-3 mt-4">
@ -187,6 +189,35 @@
<script src="~/vendor/toast-alert/izitoast.min.js"></script>
<script src="~/js/custom.js"></script>
<script type="text/javascript">
$(document).ready(function () {
debugger;
// Select the password and confirmPassword input fields
var passwordField = $("#NewPassword");
var confirmPasswordField = $("#ConfirmNewPassword");
// Select the password and confirmPassword validation elements
var passwordValidation = $("#password-validation");
var confirmPasswordValidation = $("#confirm-password-validation");
// Password regex: Minimum 8 characters, at least one uppercase letter, one lowercase letter, and one number
var passwordRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z\d@('@')$#!%*?&]{8,}$/;
// Add event handlers to the password and confirmPassword fields
passwordField.on("keyup", function () {
var password = passwordField.val();
if (passwordRegex.test(password)) {
passwordValidation.text("Valid password").css("color", "green");
} else {
passwordValidation.text("Password should contain at least one special character (*&%$), one uppercase, one lowercase and min of 8 characters").css("color", "red");
}
});
confirmPasswordField.on("keyup", function () {
var password = passwordField.val();
var confirmPassword = confirmPasswordField.val();
if (password === confirmPassword) {
confirmPasswordValidation.text("Passwords match").css("color", "green");
} else {
confirmPasswordValidation.text("Passwords do not match").css("color", "red");
}
});
})
(function () {
'use strict'
// Fetch all the forms we want to apply custom Bootstrap validation styles to

41
CustomerOnlineV2/CustomerOnlineV2/Views/Customer/CustomerProfile.cshtml

@ -124,14 +124,17 @@
@* <a href="#edit-personal-details" data-bs-toggle="modal" class="ms-auto text-2 text-uppercase btn-link">
<span class="me-1"><i class="fas fa-edit"></i></span>Edit
</a> *@
<a href="#edit-personal-details" data-bs-toggle="modal" class="ms-auto text-1 text-uppercase btn-link">
@* <a href="#edit-personal-details" data-bs-toggle="modal" class="ms-auto text-1 text-uppercase btn-link">
<span class="me-1"><i class="fas fa-edit"></i></span>Edit
</a>
</a> *@
</h3>
<hr class="mx-n4 mb-4" />
<div class="row gx-3 align-items-center">
<p class="col-sm-3 text-muted text-sm-end mb-0 mb-sm-3">ZipCode:</p>
<p class="col-sm-9 text-3" id="zipCode"></p>
<a href="#edit-personal-details" data-bs-toggle="modal" class="ms-auto text-1 text-uppercase btn-link">
<span class="me-1"><i class="fas fa-edit"></i></span>Edit
</a>
</div>
<div class="row gx-3 align-items-center">
@ -167,15 +170,15 @@
<hr />
<div class="row g-3">
<div class="col-12 col-sm-6">
@*<div class="col-12 col-sm-6">
<label for="postalCode" class="form-label">City</label>
<input type="text" class="form-control" required placeholder="City" readonly />
</div>
</div> *@
<input asp-for="customerId" hidden/>
<div class="col-12 col-sm-6">
<label for="zipCode" class="form-label">Zip Code</label>
<input asp-for="postalCode" type="text" class="form-control" required placeholder="City" />
<input asp-for="postalCode" type="text" class="form-control" required placeholder="Zip Code" />
<span class="input-group-text px-2">
<button class="btn-choose bg-transparent text-white border-0" id="btnSearch" type="button">Lookup</button>
</span>
@ -215,7 +218,7 @@
<input type="text" class="form-control" asp-for="address2" />
</div>
<div class="col-12 mt-4 d-grid"><button class="btn btn-primary" type="submit">Save Changes</button></div>
<div class="col-12 mt-4 d-grid"><button class="btn btn-primary" type="submit" onclick="UpdateAddress()">Update Changes</button></div>
</div>
</form>
</div>
@ -426,9 +429,33 @@
}
function UpdateAddress() {
debugger;
$.ajax({
url: "/Customer/UpdateCustomer",
type: "post",
anync: false,
data: {
//CustomerId: $("#customerId").val(),
zipCode: $("#postalCode").val(),
address: $("#address").val(),
address2: $("#address2").val(),
},
success: function (data) {
debugger;
if (data === 1) {
alert("Updated Successfully");
}
},
error: function (data) {
alert("Sorry Couldn't be updated");
}
}
);
}
</script>
}

4
CustomerOnlineV2/CustomerOnlineV2/Views/Shared/_Layout2.cshtml

@ -139,7 +139,7 @@
</div>
<!-- Content end -->
<!-- Footer -->
<footer id="footer" class="footer-web py-3 ">
@* <footer id="footer" class="footer-web py-3 ">
<div class="container">
<div class="footer-copyright text-center border-0">
<div class="row">
@ -152,7 +152,7 @@
</div>
</div>
</div>
</footer>
</footer> *@
<!-- Footer end -->
</div>
<script src="~/vendor/jquery/jquery.min.js"></script>

Loading…
Cancel
Save