check in all the work is good to go now.

This commit is contained in:
Kham
2021-08-25 15:42:06 +10:00
parent 4792acea76
commit 1155deaf1a
14 changed files with 140 additions and 28 deletions
@@ -38,8 +38,7 @@ namespace CarParkValidationAPI.Controllers
[HttpGet] [HttpGet]
public async Task<IActionResult> ConcessionValidation(bool onlyActive=true) public async Task<IActionResult> ConcessionValidation(bool onlyActive=true)
{ {
var retval = await _concessionValidation.LoadConcessionValidationAsync(onlyActive); var retval = await _concessionValidation.LoadConcessionValidationAsync(onlyActive);
return Ok(retval); return Ok(retval);
} }
@@ -51,6 +50,13 @@ namespace CarParkValidationAPI.Controllers
return Ok(retval); return Ok(retval);
} }
[HttpGet("[action]")]
public async Task<IActionResult> CheckConcessionValidationByStaff(string staffLinkNo, string concessionCard, DateTime currentDate)
{
var retval = await _concessionValidation.CheckConcessionValidationStaffLinkNoAsync(staffLinkNo, concessionCard, currentDate);
return Ok(retval);
}
[HttpGet("{id:int}")] [HttpGet("{id:int}")]
public async Task<IActionResult> ConcessionValidation(int id) public async Task<IActionResult> ConcessionValidation(int id)
{ {
+14 -2
View File
@@ -81,10 +81,22 @@ namespace CarParkValidationAPI.Datas
myobj = reader["ConcessionType"]; myobj = reader["ConcessionType"];
if (myobj != System.DBNull.Value) if (myobj != System.DBNull.Value)
item.ConcessionType = (string)myobj; item.ConcessionType = (string)myobj;
myobj = reader["ValidationPoint"]; myobj = reader["ValidationPoint"];
if (myobj != System.DBNull.Value) if (myobj != System.DBNull.Value)
item.ValidationPiont = (string)myobj; item.ValidationPoint = (string)myobj;
myobj = reader["StaffFirstName"];
if (myobj != System.DBNull.Value)
item.StaffFirstName = (string)myobj;
myobj = reader["StaffLastName"];
if (myobj != System.DBNull.Value)
item.StaffLastName = (string)myobj;
myobj = reader["StaffEmail"];
if (myobj != System.DBNull.Value)
item.StaffEmail = (string)myobj;
/* /*
myobj = reader["ValidationPointID"]; myobj = reader["ValidationPointID"];
if (myobj != System.DBNull.Value) if (myobj != System.DBNull.Value)
@@ -8,7 +8,7 @@ namespace CarParkValidationAPI.Entities
public class ConcessionValidationExtDto: ConcessionValidationDto public class ConcessionValidationExtDto: ConcessionValidationDto
{ {
public string ConcessionType { get; set; } public string ConcessionType { get; set; }
public string ValidationPiont { get; set; } public string ValidationPoint { get; set; }
} }
@@ -32,6 +32,10 @@ namespace CarParkValidationAPI.Entities
public int ValidationPointId { get; set; } public int ValidationPointId { get; set; }
public bool Active { get; set; } public bool Active { get; set; }
public string StaffFirstName { get; set; }
public string StaffLastName { get; set; }
public string StaffEmail { get; set; }
#endregion #endregion
} }
} }
@@ -12,6 +12,7 @@ namespace CarParkValidationAPI.Interface
{ {
Task<ResultModel<List<ConcessionValidationExtDto>>> LoadConcessionValidationAsync(bool OnlyActive); Task<ResultModel<List<ConcessionValidationExtDto>>> LoadConcessionValidationAsync(bool OnlyActive);
Task<ResultModel<List<ConcessionValidationExtDto>>> LoadConcessionValidationStaffLinkNoAsync(string staffLinkNo, DateTime currentDate); Task<ResultModel<List<ConcessionValidationExtDto>>> LoadConcessionValidationStaffLinkNoAsync(string staffLinkNo, DateTime currentDate);
Task<ResultModel<int>> CheckConcessionValidationStaffLinkNoAsync(string staffLinkNo, string concessionCard, DateTime currentDate);
Task<ResultModel<int>> SaveConcessionValidationAsync(ConcessionValidationDto item); Task<ResultModel<int>> SaveConcessionValidationAsync(ConcessionValidationDto item);
Task<ResultModel<ConcessionValidationDto>> LoadConcessionValidationByIdAsync(int id); Task<ResultModel<ConcessionValidationDto>> LoadConcessionValidationByIdAsync(int id);
Task<ResultModel<bool>> DeleteConcessionValidationAsync(int id); Task<ResultModel<bool>> DeleteConcessionValidationAsync(int id);
Binary file not shown.
@@ -42,6 +42,9 @@ namespace CarParkValidationAPI.Models
public int ValidationPointID { get; set; } public int ValidationPointID { get; set; }
public bool Active { get; set; } public bool Active { get; set; }
public string StaffFirstName { get; set; }
public string StaffLastName { get; set; }
public string StaffEmail { get; set; }
#endregion #endregion
} }
} }
@@ -10,13 +10,14 @@ namespace CarParkValidationAPI.Models.Users
public string Username { get; set; } public string Username { get; set; }
public AdminRole Role { get; set; } public AdminRole Role { get; set; }
public string Token { get; set; } public string Token { get; set; }
public string Email { get; set; }
public AuthenticateResponse(User user, string token) public AuthenticateResponse(User user, string token)
{ {
Id = user.Id; Id = user.Id;
FirstName = user.FirstName; FirstName = user.FirstName;
LastName = user.LastName; LastName = user.LastName;
Username = user.Username; Username = user.Username;
Email = user.Email;
Role = user.Role; Role = user.Role;
Token = token; Token = token;
} }
@@ -16,7 +16,7 @@
"IIS Express": { "IIS Express": {
"commandName": "IISExpress", "commandName": "IISExpress",
"launchBrowser": true, "launchBrowser": true,
"launchUrl": "swagger", "launchUrl": "api/v1/LookupCode/ConcessionTypes",
"environmentVariables": { "environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development" "ASPNETCORE_ENVIRONMENT": "Development"
} }
@@ -33,37 +33,75 @@ namespace CarParkValidationAPI.Repository
SLDocument sl = new SLDocument(); SLDocument sl = new SLDocument();
//first sheetName
sl.RenameWorksheet(SLDocument.DefaultFirstSheetName, "ConcessionValidation");
SLStyle style = sl.CreateStyle();
style.SetFontUnderline(DocumentFormat.OpenXml.Spreadsheet.UnderlineValues.Single);
style.SetFontBold(true);
style.SetFont("Arial Black", 16);
sl.SetCellStyle(1, 5, style);
sl.SetRowHeight(1, 1, 25);
sl.SetCellValue(row++, 5, "The ConssionValidation Report");
sl.SetCellValue(1, 8, " " + DateTime.Now.ToString("ddd dd/MM/yyyy HH:mm"));
int startTitleRow = 3;
row = startTitleRow;
//make the title bold
style = sl.CreateStyle();
style.Font.Bold = true;
sl.SetRowStyle(startTitleRow, style);
//set it height
sl.SetRowHeight(startTitleRow, startTitleRow, 25);
// add the title first // add the title first
sl.SetCellValue(row, col++, "Date"); sl.SetCellValue(row, col++, "Date");
sl.SetCellValue(row, col++, "Concession Card"); sl.SetCellValue(row, col++, "Concession Card");
sl.SetCellValue(row, col++, "Concession Holder"); sl.SetCellValue(row, col++, "Concession Holder");
sl.SetCellValue(row, col++, "ConcessionExpiry"); sl.SetCellValue(row, col++, "Is Concession Expiry");
sl.SetCellValue(row, col++, "ConcessionType"); sl.SetCellValue(row, col++, "ConcessionType");
sl.SetCellValue(row, col++, "ValidationPiont"); sl.SetCellValue(row, col++, "Validation Piont");
sl.SetCellValue(row, col++, "StaffLink No"); sl.SetCellValue(row, col++, "StaffLink No");
sl.SetCellValue(row, col++, "Staff first name");
sl.SetCellValue(row, col++, "Staff last name");
sl.SetCellValue(row, col++, "Staff Email");
//wrap text on is concession Expiry
style = sl.CreateStyle();
style.SetWrapText(true);
sl.SetColumnStyle(4, style);
//format date //format date
SLStyle style = sl.CreateStyle();
style.FormatCode = "dd/mm/yyyy hh:mm:ss";
sl.SetColumnStyle(1, style);
style = sl.CreateStyle(); style = sl.CreateStyle();
style.Font.Bold = true; style.FormatCode = "dd/mm/yyyy";
sl.SetRowStyle(1, style); sl.SetColumnStyle(1, style);
//make column width
sl.SetColumnWidth(1, 20);
sl.SetColumnWidth(2, 18);
sl.SetColumnWidth(3, 25);
sl.SetColumnWidth(4, 20);
sl.SetColumnWidth(5, 30);
sl.SetColumnWidth(6, 40);
sl.SetColumnWidth(7, 20);
sl.SetColumnWidth(8, 20);
sl.SetColumnWidth(9, 20);
sl.SetColumnWidth(10, 20);
int startRowFrom = startTitleRow+1;
var list = await _context.SelectConcessionValidationByDate(true, fromDate.ToLocalTime(), toDate.ToLocalTime()); var list = await _context.SelectConcessionValidationByDate(true, fromDate.ToLocalTime(), toDate.ToLocalTime());
for (int i = 0; i < list.Count; i++) for (int i = 0; i < list.Count; i++)
{ {
col = 1; col = 1;
item = list[i]; item = list[i];
row = i + 2; row = i + startRowFrom;
sl.SetCellValue(row, col++, item.ValidateDate); sl.SetCellValue(row, col++, item.ValidateDate);
sl.SetCellValue(row, col++, item.ConcessionCard); sl.SetCellValue(row, col++, item.ConcessionCard);
sl.SetCellValue(row, col++, item.ConcessionHolder); sl.SetCellValue(row, col++, item.ConcessionHolder);
sl.SetCellValue(row, col++, item.ConcessionExpiry); sl.SetCellValue(row, col++, item.ConcessionExpiry ? "Yes": "No");
sl.SetCellValue(row, col++, item.ConcessionType); sl.SetCellValue(row, col++, item.ConcessionType);
sl.SetCellValue(row, col++, item.ValidationPiont); sl.SetCellValue(row, col++, item.ValidationPoint);
sl.SetCellValue(row, col++, item.StafflinkNo); sl.SetCellValue(row, col++, item.StafflinkNo);
sl.SetCellValue(row, col++, item.StaffFirstName);
sl.SetCellValue(row, col++, item.StaffLastName);
sl.SetCellValue(row, col++, item.StaffEmail);
} }
byte[] array; byte[] array;
// sl.SaveAs("C:\\Temp\\Report\\ConcessionValidationDate" + DateTime.Now.ToString("yyyyMMddHHmm") + ".xlsx"); // sl.SaveAs("C:\\Temp\\Report\\ConcessionValidationDate" + DateTime.Now.ToString("yyyyMMddHHmm") + ".xlsx");
@@ -82,7 +120,6 @@ namespace CarParkValidationAPI.Repository
} }
var result = new FileContent var result = new FileContent
{ {
Content = array, Content = array,
@@ -90,8 +127,6 @@ namespace CarParkValidationAPI.Repository
}; };
return new ResultModel<FileContent> return new ResultModel<FileContent>
{ {
Data = result, Data = result,
@@ -41,6 +41,9 @@ namespace CarParkValidationAPI.Repository
dto.StafflinkNo = model.StafflinkNo; dto.StafflinkNo = model.StafflinkNo;
dto.ValidateDate = model.ValidateDate; dto.ValidateDate = model.ValidateDate;
dto.ValidationPointId = model.ValidationPointID; dto.ValidationPointId = model.ValidationPointID;
dto.StaffFirstName = model.StaffFirstName;
dto.StaffLastName = model.StaffLastName;
dto.StaffEmail = model.StaffEmail;
return dto; return dto;
} }
@@ -53,7 +56,9 @@ namespace CarParkValidationAPI.Repository
dto.ConcessionHolder = model.ConcessionHolder; dto.ConcessionHolder = model.ConcessionHolder;
dto.ConcessionTypeId = model.ConcessionTypeID; dto.ConcessionTypeId = model.ConcessionTypeID;
dto.Id = model.ValidationID; dto.Id = model.ValidationID;
dto.StafflinkNo = model.StafflinkNo; dto.StaffFirstName = model.StaffFirstName;
dto.StaffLastName = model.StaffLastName;
dto.StaffEmail = model.StaffEmail;
dto.ValidateDate = model.ValidateDate; dto.ValidateDate = model.ValidateDate;
dto.ValidationPointId = model.ValidationPointID; dto.ValidationPointId = model.ValidationPointID;
return dto; return dto;
@@ -61,7 +66,6 @@ namespace CarParkValidationAPI.Repository
private ConcessionValidation FillConcessionValidation(ConcessionValidationDto dto, ConcessionValidation model) private ConcessionValidation FillConcessionValidation(ConcessionValidationDto dto, ConcessionValidation model)
{ {
model.Active = dto.Active; model.Active = dto.Active;
model.ConcessionCard = dto.ConcessionCard; model.ConcessionCard = dto.ConcessionCard;
model.ConcessionExpiry = dto.ConcessionExpiry; model.ConcessionExpiry = dto.ConcessionExpiry;
@@ -69,6 +73,9 @@ namespace CarParkValidationAPI.Repository
model.ConcessionTypeID = dto.ConcessionTypeId; model.ConcessionTypeID = dto.ConcessionTypeId;
model.ValidationID = dto.Id; model.ValidationID = dto.Id;
model.StafflinkNo = dto.StafflinkNo; model.StafflinkNo = dto.StafflinkNo;
model.StaffFirstName = dto.StaffFirstName;
model.StaffLastName = dto.StaffLastName;
model.StaffEmail = dto.StaffEmail;
model.ValidateDate = dto.ValidateDate.ToLocalTime(); model.ValidateDate = dto.ValidateDate.ToLocalTime();
model.ValidationPointID = dto.ValidationPointId; model.ValidationPointID = dto.ValidationPointId;
return model; return model;
@@ -150,6 +157,46 @@ namespace CarParkValidationAPI.Repository
Message = error Message = error
}; };
} }
public async Task<ResultModel<int>> CheckConcessionValidationStaffLinkNoAsync(string staffLinkNo, string concessionCard, DateTime currentDate)
{
int statuscode = 1;
int result = 1;
string message = "warning you already add concession card on this date!";
try
{
var anyRecord = await _context.ConcessionValidations.Where(x =>
x.StafflinkNo == staffLinkNo
&& x.ConcessionCard == concessionCard
&& x.Active == true
&& x.ValidateDate.Date == currentDate.ToLocalTime().Date
).ToListAsync();
if (anyRecord.Count > 0)
{
result = -1;
}
else
{
result = 1; //test
message = "test OK just one time";
}
statuscode = 1;
}
catch (Exception ex)
{
message = "Error " + ex.ToString();
statuscode = 0;
result = 0;
}
return new ResultModel<int>()
{
Data = result,
StatusCode = statuscode,
Message = message,
};
}
public async Task<ResultModel<ConcessionValidationDto>> LoadConcessionValidationByIdAsync(int id) public async Task<ResultModel<ConcessionValidationDto>> LoadConcessionValidationByIdAsync(int id)
{ {
ConcessionValidationDto result = null; ConcessionValidationDto result = null;
@@ -229,7 +276,8 @@ namespace CarParkValidationAPI.Repository
if (id > 0) if (id > 0)
{ {
ConcessionValidation model = await _context.ConcessionValidations.FindAsync(id); ConcessionValidation model = await _context.ConcessionValidations.FindAsync(id);
model.Active = false; // model.Active = false;
_context.ConcessionValidations.Remove(model);
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
statuscode = 1; statuscode = 1;
} }
@@ -56,12 +56,14 @@ namespace CarParkValidationAPI.Repository
user.LastName = "LS Test"; user.LastName = "LS Test";
user.Role = AdminRole.Admin; user.Role = AdminRole.Admin;
user.Username = model.Username; user.Username = model.Username;
user.Email = "admin@mail.com";
} }
else else
{ {
user.Username = model.Username; user.Username = model.Username;
user.FirstName = model.Username; user.FirstName = "FS Normal";
user.LastName = " LS Normal"; user.LastName = " LS Normal";
user.Email = "Normal@mail.com";
user.Role = AdminRole.Normal; user.Role = AdminRole.Normal;
} }
@@ -69,7 +69,7 @@ namespace CarParkValidationAPI.Repository
&& x.Active == true); && x.Active == true);
if (user != null) if (user != null)
{ {
myUser.Role = user.RoleType; myUser.Role = AdminRole.Admin; //user.RoleType;
myUser.Id = user.UserID; myUser.Id = user.UserID;
} }
else else
+2 -1
View File
@@ -84,7 +84,8 @@ namespace CarParkValidationAPI
}); });
*/ */
services.AddScoped<IJwtUtils, JwtUtils>(); services.AddScoped<IJwtUtils, JwtUtils>();
services.AddScoped<IUserService, UserFakeRepository>(); //services.AddScoped<IUserService, UserFakeRepository>();
services.AddScoped<IUserService, UserRepository>();
services.AddScoped<IConcessionType, ConcessionTypeRepository>(); services.AddScoped<IConcessionType, ConcessionTypeRepository>();
services.AddScoped<IValidationPoint, ValidationPointRepository>(); services.AddScoped<IValidationPoint, ValidationPointRepository>();
services.AddScoped<IAdminUser, AdminUserRepository>(); services.AddScoped<IAdminUser, AdminUserRepository>();
-1
View File
@@ -1,7 +1,6 @@
{ {
"AppSettings": { "AppSettings": {
"Secret": "Nepean Blue Mountain Super Secret SIGN AND VERIFY JWT TOKENS, BEARER TOKEN USE WHEN CALLING THIS API.", "Secret": "Nepean Blue Mountain Super Secret SIGN AND VERIFY JWT TOKENS, BEARER TOKEN USE WHEN CALLING THIS API.",
"SQLConnectionString": "Server=tcp:10.60.207.82,1433;Initial Catalog=CarParkValidation;Persist Security Info=False;User ID=bids_admin;Password=Password4BI;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;",
"LDAPPath": "LDAP://ldap.nswhealth.net:389/OU=Accounts,DC=nswhealth,DC=net", "LDAPPath": "LDAP://ldap.nswhealth.net:389/OU=Accounts,DC=nswhealth,DC=net",
"LDAPUser": "SRV-NBMS-BIDSPMS", "LDAPUser": "SRV-NBMS-BIDSPMS",
"LDAPPassword": "42Ytp2AE3nN16eBoyia86UZH6", "LDAPPassword": "42Ytp2AE3nN16eBoyia86UZH6",