Removed all Warnings from Services project
This commit is contained in:
parent
ec5fba0637
commit
58bb684c4b
@ -1,8 +1,8 @@
|
|||||||
using Marco.Pms.Model.Employees;
|
using System.ComponentModel;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using Marco.Pms.Model.Employees;
|
||||||
using Marco.Pms.Model.Entitlements;
|
using Marco.Pms.Model.Entitlements;
|
||||||
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;
|
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;
|
||||||
using System.ComponentModel;
|
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
|
||||||
|
|
||||||
namespace Marco.Pms.Model.Projects
|
namespace Marco.Pms.Model.Projects
|
||||||
{
|
{
|
||||||
|
@ -10,7 +10,6 @@ using MarcoBMS.Services.Helpers;
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.CodeAnalysis;
|
using Microsoft.CodeAnalysis;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using static System.Runtime.InteropServices.JavaScript.JSType;
|
|
||||||
|
|
||||||
namespace MarcoBMS.Services.Controllers
|
namespace MarcoBMS.Services.Controllers
|
||||||
{
|
{
|
||||||
@ -48,7 +47,7 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
|
|
||||||
List<AttendanceLog> lstAttendance = await _context.AttendanceLogs.Where(c => c.AttendanceId == attendanceid && c.TenantId == TenantId).ToListAsync();
|
List<AttendanceLog> lstAttendance = await _context.AttendanceLogs.Where(c => c.AttendanceId == attendanceid && c.TenantId == TenantId).ToListAsync();
|
||||||
|
|
||||||
return Ok(ApiResponse<object>.SuccessResponse(lstAttendance, String.Format("{0} Attendance records fetched successfully", lstAttendance.Count), 200));
|
return Ok(ApiResponse<object>.SuccessResponse(lstAttendance, System.String.Format("{0} Attendance records fetched successfully", lstAttendance.Count), 200));
|
||||||
|
|
||||||
}
|
}
|
||||||
[HttpGet("log/employee/{employeeid}")]
|
[HttpGet("log/employee/{employeeid}")]
|
||||||
|
@ -43,30 +43,29 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
{
|
{
|
||||||
var user = await _context.ApplicationUsers.FirstOrDefaultAsync(u => u.Email == loginDto.Username || u.PhoneNumber == loginDto.Username);
|
var user = await _context.ApplicationUsers.FirstOrDefaultAsync(u => u.Email == loginDto.Username || u.PhoneNumber == loginDto.Username);
|
||||||
|
|
||||||
if (user == null || !await _userManager.CheckPasswordAsync(user, loginDto.Password))
|
if (user != null && await _userManager.CheckPasswordAsync(user, loginDto.Password))
|
||||||
{
|
{
|
||||||
return Unauthorized(ApiResponse<object>.ErrorResponse("Invalid username or password.", "Invalid username or password.", 401));
|
if (!user.IsActive)
|
||||||
//return Unauthorized("Invalid username or password.");
|
{
|
||||||
|
return BadRequest(ApiResponse<object>.ErrorResponse("User is In Active", "User is In Active", 400));
|
||||||
|
}
|
||||||
|
if (!user.EmailConfirmed)
|
||||||
|
{
|
||||||
|
return BadRequest(ApiResponse<object>.ErrorResponse("Your email is not verified, Please verify your email", "Your email is not verified, Please verify your email", 400));
|
||||||
|
}
|
||||||
|
Employee emp = await _employeeHelper.GetEmployeeByApplicationUserID(user.Id);
|
||||||
|
//var refreshToken = GenerateRefreshToken();
|
||||||
|
if (user.UserName == null) return NotFound(ApiResponse<object>.ErrorResponse("UserName Not found", "UserName Not found", 404)); ;
|
||||||
|
|
||||||
|
var token = _refreshTokenService.GenerateJwtToken(user.UserName, emp.TenantId.ToString(), _jwtSettings);
|
||||||
|
|
||||||
|
var refreshToken = await _refreshTokenService.CreateRefreshToken(user.Id, emp.TenantId.ToString(), _jwtSettings);
|
||||||
|
|
||||||
|
return Ok(ApiResponse<object>.SuccessResponse(new { token = token, refreshToken = refreshToken }, "User logged in successfully.", 200));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!user.IsActive)
|
return Unauthorized(ApiResponse<object>.ErrorResponse("Invalid username or password.", "Invalid username or password.", 401));
|
||||||
{
|
|
||||||
return BadRequest(ApiResponse<object>.ErrorResponse("User is In Active", "User is In Active", 400));
|
|
||||||
//return BadRequest("User is In Active");
|
|
||||||
}
|
|
||||||
if (!user.EmailConfirmed)
|
|
||||||
{
|
|
||||||
return BadRequest(ApiResponse<object>.ErrorResponse("Your email is not verified, Please verify your email", "Your email is not verified, Please verify your email", 400));
|
|
||||||
//return BadRequest("Your email is not verified, Please verify your email");
|
|
||||||
}
|
|
||||||
Employee emp = await _employeeHelper.GetEmployeeByApplicationUserID(user.Id);
|
|
||||||
//var refreshToken = GenerateRefreshToken();
|
|
||||||
|
|
||||||
var token = _refreshTokenService.GenerateJwtToken(user.UserName, emp.TenantId.ToString(), _jwtSettings);
|
|
||||||
|
|
||||||
var refreshToken = await _refreshTokenService.CreateRefreshToken(user.Id, emp.TenantId.ToString(), _jwtSettings);
|
|
||||||
|
|
||||||
return Ok(ApiResponse<object>.SuccessResponse(new { token = token, refreshToken = refreshToken }, "User logged in successfully.", 200));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost("logout")]
|
[HttpPost("logout")]
|
||||||
@ -98,7 +97,7 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
// _logger.LogError(ex, "Error during logout");
|
// _logger.LogError(ex, "Error during logout");
|
||||||
return BadRequest(ApiResponse<object>.ErrorResponse("Internal server error", "Internal server error", 500));
|
return BadRequest(ApiResponse<object>.ErrorResponse("Internal server error", ex.Message, 500));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -121,6 +120,8 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
|
|
||||||
Employee emp = await _employeeHelper.GetEmployeeByApplicationUserID(user.Id);
|
Employee emp = await _employeeHelper.GetEmployeeByApplicationUserID(user.Id);
|
||||||
|
|
||||||
|
if (user.UserName == null) return NotFound(ApiResponse<object>.ErrorResponse("UserName Not found", "UserName Not found", 404));
|
||||||
|
|
||||||
var newJwtToken = _refreshTokenService.GenerateJwtToken(user.UserName, emp.TenantId.ToString(), _jwtSettings);
|
var newJwtToken = _refreshTokenService.GenerateJwtToken(user.UserName, emp.TenantId.ToString(), _jwtSettings);
|
||||||
var newRefreshToken = await _refreshTokenService.CreateRefreshToken(user.Id, emp.TenantId.ToString(), _jwtSettings);
|
var newRefreshToken = await _refreshTokenService.CreateRefreshToken(user.Id, emp.TenantId.ToString(), _jwtSettings);
|
||||||
|
|
||||||
@ -137,6 +138,9 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
/* SEND USER REGISTRATION MAIL*/
|
/* SEND USER REGISTRATION MAIL*/
|
||||||
var token = await _userManager.GeneratePasswordResetTokenAsync(user);
|
var token = await _userManager.GeneratePasswordResetTokenAsync(user);
|
||||||
var resetLink = $"{_configuration["AppSettings:WebFrontendUrl"]}/reset-password?token={WebUtility.UrlEncode(token)}";
|
var resetLink = $"{_configuration["AppSettings:WebFrontendUrl"]}/reset-password?token={WebUtility.UrlEncode(token)}";
|
||||||
|
|
||||||
|
if (user.Email == null) return NotFound(ApiResponse<object>.ErrorResponse("Email Not found", "Email Not found", 404));
|
||||||
|
|
||||||
await _emailSender.SendResetPasswordEmail(user.Email, "", resetLink);
|
await _emailSender.SendResetPasswordEmail(user.Email, "", resetLink);
|
||||||
|
|
||||||
|
|
||||||
@ -199,7 +203,7 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
var user = await _userManager.FindByEmailAsync(emailDot.ToEmail);
|
var user = await _userManager.FindByEmailAsync(emailDot.ToEmail);
|
||||||
if (user == null)
|
if (user == null)
|
||||||
{
|
{
|
||||||
return BadRequest(ApiResponse<object>.ErrorResponse("User not found.", "User not found.", 400));
|
return NotFound(ApiResponse<object>.ErrorResponse("User not found.", "User not found.", 404));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* New User*/
|
/* New User*/
|
||||||
@ -217,6 +221,9 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
var isTokenValid = await _userManager.VerifyUserTokenAsync(user, TokenOptions.DefaultProvider, "ResetPassword", token);
|
var isTokenValid = await _userManager.VerifyUserTokenAsync(user, TokenOptions.DefaultProvider, "ResetPassword", token);
|
||||||
|
|
||||||
var resetLink = $"{_configuration["AppSettings:WebFrontendUrl"]}/reset-password?token={WebUtility.UrlEncode(token)}";
|
var resetLink = $"{_configuration["AppSettings:WebFrontendUrl"]}/reset-password?token={WebUtility.UrlEncode(token)}";
|
||||||
|
|
||||||
|
if (user.Email == null) return NotFound(ApiResponse<object>.ErrorResponse("Email Not found", "Email Not found", 404));
|
||||||
|
|
||||||
await _emailSender.SendResetPasswordEmail(user.Email, "", resetLink);
|
await _emailSender.SendResetPasswordEmail(user.Email, "", resetLink);
|
||||||
|
|
||||||
return Ok(ApiResponse<object>.SuccessResponse(new {}, "Password reset link sent.", 200));
|
return Ok(ApiResponse<object>.SuccessResponse(new {}, "Password reset link sent.", 200));
|
||||||
|
@ -57,7 +57,7 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
}
|
}
|
||||||
int tenantId = GetTenantId();
|
int tenantId = GetTenantId();
|
||||||
|
|
||||||
var empRoles = _context.EmployeeRoleMappings.Where(c => c.EmployeeId == employeeId).Include(c => c.Role).Include(c => c.Employee).ToList();
|
var empRoles = await _context.EmployeeRoleMappings.Where(c => c.EmployeeId == employeeId).Include(c => c.Role).Include(c => c.Employee).ToListAsync();
|
||||||
if (empRoles.Any())
|
if (empRoles.Any())
|
||||||
{
|
{
|
||||||
List<EmployeeRolesVM> roles = new List<EmployeeRolesVM>();
|
List<EmployeeRolesVM> roles = new List<EmployeeRolesVM>();
|
||||||
@ -220,7 +220,7 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
// Create Employee record if missing
|
// Create Employee record if missing
|
||||||
//Employee newEmployee = GetNewEmployeeModel(model, TenantId, existingUser.Id);
|
//Employee newEmployee = GetNewEmployeeModel(model, TenantId, existingUser.Id);
|
||||||
//_context.Employees.Add(newEmployee);
|
//_context.Employees.Add(newEmployee);
|
||||||
return BadRequest(ApiResponse<object>.ErrorResponse("You cannot use this email", "You cannot use this email", 400));
|
return BadRequest(ApiResponse<object>.ErrorResponse("Email already exist", "Email already exist", 400));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -276,8 +276,8 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
}
|
}
|
||||||
return Ok(ApiResponse<object>.SuccessResponse("Success.",responsemessage, 200));
|
return Ok(ApiResponse<object>.SuccessResponse("Success.",responsemessage, 200));
|
||||||
}
|
}
|
||||||
|
#nullable disable
|
||||||
private static Employee GetNewEmployeeModel(CreateUserDto model, int TenantId, string? ApplicationUserId)
|
private static Employee GetNewEmployeeModel(CreateUserDto model, int TenantId, string ApplicationUserId)
|
||||||
{
|
{
|
||||||
var newEmployee = new Employee
|
var newEmployee = new Employee
|
||||||
{
|
{
|
||||||
@ -304,7 +304,7 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
return newEmployee;
|
return newEmployee;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Employee GetUpdateEmployeeModel(CreateUserDto model, Employee existingEmployee, IdentityUser? existingIdentityUser = null)
|
private static Employee GetUpdateEmployeeModel(CreateUserDto model, Employee existingEmployee, IdentityUser existingIdentityUser = null)
|
||||||
{
|
{
|
||||||
if (existingEmployee.ApplicationUserId == null && existingIdentityUser != null)
|
if (existingEmployee.ApplicationUserId == null && existingIdentityUser != null)
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
using Marco.Pms.DataAccess.Data;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using Marco.Pms.DataAccess.Data;
|
||||||
using Marco.Pms.Model.Dtos.Project;
|
using Marco.Pms.Model.Dtos.Project;
|
||||||
using Marco.Pms.Model.Employees;
|
using Marco.Pms.Model.Employees;
|
||||||
using Marco.Pms.Model.Entitlements;
|
using Marco.Pms.Model.Entitlements;
|
||||||
@ -9,8 +11,8 @@ using Marco.Pms.Model.ViewModels;
|
|||||||
using Marco.Pms.Model.ViewModels.Employee;
|
using Marco.Pms.Model.ViewModels.Employee;
|
||||||
using MarcoBMS.Services.Helpers;
|
using MarcoBMS.Services.Helpers;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.AspNetCore.Identity;
|
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace MarcoBMS.Services.Controllers
|
namespace MarcoBMS.Services.Controllers
|
||||||
@ -22,18 +24,18 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
{
|
{
|
||||||
//private readonly IUnitOfWork _unitOfWork;
|
//private readonly IUnitOfWork _unitOfWork;
|
||||||
private readonly ApplicationDbContext _context;
|
private readonly ApplicationDbContext _context;
|
||||||
private ApplicationUser _applicationUser;
|
//private ApplicationUser _applicationUser;
|
||||||
// private readonly IProjectRepository _projectrepo;
|
// private readonly IProjectRepository _projectrepo;
|
||||||
private readonly UserManager<IdentityUser> _userManager;
|
//private readonly UserManager<IdentityUser> _userManager;
|
||||||
private readonly UserHelper _userHelper;
|
private readonly UserHelper _userHelper;
|
||||||
|
|
||||||
|
|
||||||
public ProjectController(UserManager<IdentityUser> userManager, ApplicationDbContext context, UserHelper userHelper)
|
public ProjectController(ApplicationDbContext context, UserHelper userHelper)
|
||||||
{
|
{
|
||||||
//_unitOfWork = unitOfWork;
|
//_unitOfWork = unitOfWork;
|
||||||
_context = context;
|
_context = context;
|
||||||
//_projectrepo = projectrepo;
|
//_projectrepo = projectrepo;
|
||||||
_userManager = userManager;
|
//_userManager = userManager;
|
||||||
_userHelper = userHelper;
|
_userHelper = userHelper;
|
||||||
}
|
}
|
||||||
[HttpGet("list")]
|
[HttpGet("list")]
|
||||||
@ -67,7 +69,7 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
var project = await _context.Projects.Where(c => c.TenantId == _userHelper.GetTenantId() && c.Id == id).SingleOrDefaultAsync();
|
var project = await _context.Projects.Where(c => c.TenantId == _userHelper.GetTenantId() && c.Id == id).SingleOrDefaultAsync();
|
||||||
|
if (project == null) return NotFound(ApiResponse<object>.ErrorResponse("Project not found", "Project not found", 404));
|
||||||
return Ok(ApiResponse<object>.SuccessResponse(project, "Success.", 200));
|
return Ok(ApiResponse<object>.SuccessResponse(project, "Success.", 200));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,9 +125,12 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
foreach (WorkItem workItemDto in vm.workItems.Where(c => c.WorkAreaId == workAreaDto.Id).ToList())
|
foreach (WorkItem workItemDto in vm.workItems.Where(c => c.WorkAreaId == workAreaDto.Id).ToList())
|
||||||
{
|
{
|
||||||
WorkItemVM workItemVM = new WorkItemVM() { WorkItemId = workItemDto.Id, WorkItem = workItemDto };
|
WorkItemVM workItemVM = new WorkItemVM() { WorkItemId = workItemDto.Id, WorkItem = workItemDto };
|
||||||
workItemVM.WorkItem.WorkArea = null;
|
//workItemVM.WorkItem.WorkArea = null
|
||||||
workItemVM.WorkItem.ActivityMaster.Tenant = null;
|
workItemVM.WorkItem.WorkArea = new WorkArea ();
|
||||||
workItemVM.WorkItem.Tenant = null;
|
//workItemVM.WorkItem.ActivityMaster.Tenant = null;
|
||||||
|
workItemVM.WorkItem.ActivityMaster.Tenant = new Tenant();
|
||||||
|
//workItemVM.WorkItem.Tenant = null;
|
||||||
|
workItemVM.WorkItem.Tenant = new Tenant();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -282,7 +287,7 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
[Route("employees/get/{projectid?}/{includeInactive?}")]
|
[Route("employees/get/{projectid?}/{includeInactive?}")]
|
||||||
public async Task<IActionResult> GetEmployeeByProjectID(int? projectid, bool? includeInactive = false)
|
public async Task<IActionResult> GetEmployeeByProjectID(int? projectid, bool includeInactive = false)
|
||||||
{
|
{
|
||||||
if (!ModelState.IsValid)
|
if (!ModelState.IsValid)
|
||||||
{
|
{
|
||||||
@ -371,13 +376,14 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
if (projectAllocationDot != null)
|
if (projectAllocationDot != null)
|
||||||
{
|
{
|
||||||
int TenentID = GetTenantId();
|
int TenentID = GetTenantId();
|
||||||
|
List<object>? result = new List<object>();
|
||||||
|
|
||||||
foreach (var item in projectAllocationDot)
|
foreach (var item in projectAllocationDot)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ProjectAllocation projectAllocation = item.ToProjectAllocationFromProjectAllocationDto(TenentID);
|
ProjectAllocation projectAllocation = item.ToProjectAllocationFromProjectAllocationDto(TenentID);
|
||||||
ProjectAllocation projectAllocationFromDb = await _context.ProjectAllocations.Where(c => c.EmployeeId == projectAllocation.EmployeeId
|
ProjectAllocation? projectAllocationFromDb = await _context.ProjectAllocations.Where(c => c.EmployeeId == projectAllocation.EmployeeId
|
||||||
&& c.ProjectId == projectAllocation.ProjectId
|
&& c.ProjectId == projectAllocation.ProjectId
|
||||||
&& c.ReAllocationDate == null
|
&& c.ReAllocationDate == null
|
||||||
&& c.TenantId == TenentID).SingleOrDefaultAsync();
|
&& c.TenantId == TenentID).SingleOrDefaultAsync();
|
||||||
@ -401,7 +407,18 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
_context.Entry(projectAllocationFromDb).Property(e => e.IsActive).IsModified = true;
|
_context.Entry(projectAllocationFromDb).Property(e => e.IsActive).IsModified = true;
|
||||||
}
|
}
|
||||||
await _context.SaveChangesAsync();
|
await _context.SaveChangesAsync();
|
||||||
|
var result1 = new
|
||||||
|
{
|
||||||
|
Id = projectAllocationFromDb.Id,
|
||||||
|
EmployeeId = projectAllocation.EmployeeId,
|
||||||
|
JobRoleId = projectAllocation.JobRoleId,
|
||||||
|
IsActive = projectAllocation.IsActive,
|
||||||
|
ProjectId = projectAllocation.ProjectId,
|
||||||
|
AllocationDate = projectAllocation.AllocationDate,
|
||||||
|
ReAllocationDate = projectAllocation.ReAllocationDate,
|
||||||
|
TenantId = projectAllocation.TenantId
|
||||||
|
};
|
||||||
|
result.Add(result1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -416,7 +433,8 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
return Ok(ApiResponse<object>.ErrorResponse(ex.Message,ex, 400));
|
return Ok(ApiResponse<object>.ErrorResponse(ex.Message,ex, 400));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Ok(ApiResponse<object>.SuccessResponse(null, "Data saved successfully.", 200));
|
|
||||||
|
return Ok(ApiResponse<object>.SuccessResponse(result, "Data saved successfully", 200));
|
||||||
|
|
||||||
}
|
}
|
||||||
return BadRequest(ApiResponse<object>.ErrorResponse("Invalid details.", "Work Item Details are not valid." , 400));
|
return BadRequest(ApiResponse<object>.ErrorResponse("Invalid details.", "Work Item Details are not valid." , 400));
|
||||||
|
@ -67,14 +67,18 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
var response = taskAllocation.ToAssignTaskVMFromTaskAllocation();
|
var response = taskAllocation.ToAssignTaskVMFromTaskAllocation();
|
||||||
|
|
||||||
var teamMembers = new List<TaskMembers> { };
|
var teamMembers = new List<TaskMembers> { };
|
||||||
foreach (var teamMember in assignTask.TaskTeam) {
|
if (assignTask.TaskTeam != null)
|
||||||
var result = new TaskMembers
|
{
|
||||||
|
foreach (var teamMember in assignTask.TaskTeam)
|
||||||
{
|
{
|
||||||
TaskAllocationId = taskAllocation.Id,
|
var result = new TaskMembers
|
||||||
EmployeeId = teamMember,
|
{
|
||||||
TenantId = tenantId,
|
TaskAllocationId = taskAllocation.Id,
|
||||||
};
|
EmployeeId = teamMember,
|
||||||
teamMembers.Add(result);
|
TenantId = tenantId,
|
||||||
|
};
|
||||||
|
teamMembers.Add(result);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
_context.TaskMembers.AddRange(teamMembers);
|
_context.TaskMembers.AddRange(teamMembers);
|
||||||
await _context.SaveChangesAsync();
|
await _context.SaveChangesAsync();
|
||||||
|
@ -3,22 +3,23 @@ using Marco.Pms.DataAccess.Data;
|
|||||||
using Marco.Pms.Model.Employees;
|
using Marco.Pms.Model.Employees;
|
||||||
using Marco.Pms.Model.Mapper;
|
using Marco.Pms.Model.Mapper;
|
||||||
using Marco.Pms.Model.ViewModels.Employee;
|
using Marco.Pms.Model.ViewModels.Employee;
|
||||||
|
using MarcoBMS.Services.Service;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Runtime.Intrinsics.Arm;
|
|
||||||
|
|
||||||
namespace MarcoBMS.Services.Helpers
|
namespace MarcoBMS.Services.Helpers
|
||||||
{
|
{
|
||||||
public class EmployeeHelper
|
public class EmployeeHelper
|
||||||
{
|
{
|
||||||
private readonly ApplicationDbContext _context;
|
private readonly ApplicationDbContext _context;
|
||||||
public EmployeeHelper(ApplicationDbContext context)
|
private readonly ILoggingService _logger;
|
||||||
|
public EmployeeHelper(ApplicationDbContext context, ILoggingService logger)
|
||||||
{
|
{
|
||||||
_context = context;
|
_context = context;
|
||||||
|
_logger = logger;
|
||||||
}
|
}
|
||||||
public async Task<Employee> GetEmployeeByID(int EmployeeID)
|
public async Task<Employee> GetEmployeeByID(int EmployeeID)
|
||||||
{
|
{
|
||||||
return await _context.Employees.FindAsync(EmployeeID);
|
return await _context.Employees.FindAsync(EmployeeID) ?? new Employee { };
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Employee> GetEmployeeByApplicationUserID(string ApplicationUserID)
|
public async Task<Employee> GetEmployeeByApplicationUserID(string ApplicationUserID)
|
||||||
@ -27,11 +28,12 @@ namespace MarcoBMS.Services.Helpers
|
|||||||
{
|
{
|
||||||
var result = await _context.Employees.Where(c => c.ApplicationUserId == ApplicationUserID).ToListAsync();
|
var result = await _context.Employees.Where(c => c.ApplicationUserId == ApplicationUserID).ToListAsync();
|
||||||
|
|
||||||
return await _context.Employees.Where(c => c.ApplicationUserId == ApplicationUserID).SingleOrDefaultAsync();
|
return await _context.Employees.Where(c => c.ApplicationUserId == ApplicationUserID).SingleOrDefaultAsync() ?? new Employee { };
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
return null;
|
_logger.LogError("{Error}", ex.Message);
|
||||||
|
return new Employee();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,6 +65,7 @@ namespace MarcoBMS.Services.Helpers
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
_logger.LogError("{Error}", ex.Message);
|
||||||
return new List<EmployeeVM>();
|
return new List<EmployeeVM>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -93,6 +96,7 @@ namespace MarcoBMS.Services.Helpers
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
_logger.LogError("{Error}", ex.Message);
|
||||||
return new List<EmployeeVM>();
|
return new List<EmployeeVM>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
using Marco.Pms.DataAccess.Data;
|
using System.Security.Claims;
|
||||||
using Marco.Pms.Model.Dtos.Employees;
|
using Marco.Pms.DataAccess.Data;
|
||||||
using Marco.Pms.Model.Employees;
|
using Marco.Pms.Model.Employees;
|
||||||
using Marco.Pms.Model.Entitlements;
|
|
||||||
using Microsoft.AspNetCore.Identity;
|
using Microsoft.AspNetCore.Identity;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using System.Security.Claims;
|
|
||||||
|
|
||||||
namespace MarcoBMS.Services.Helpers
|
namespace MarcoBMS.Services.Helpers
|
||||||
{
|
{
|
||||||
@ -39,8 +37,9 @@ namespace MarcoBMS.Services.Helpers
|
|||||||
public async Task<Employee> GetCurrentEmployeeAsync()
|
public async Task<Employee> GetCurrentEmployeeAsync()
|
||||||
{
|
{
|
||||||
var user = await GetCurrentUserAsync();
|
var user = await GetCurrentUserAsync();
|
||||||
|
if (user == null) return new Employee { };
|
||||||
var Employee = await _context.Employees.FirstOrDefaultAsync(e => e.ApplicationUserId == user.Id);
|
var Employee = await _context.Employees.FirstOrDefaultAsync(e => e.ApplicationUserId == user.Id);
|
||||||
return Employee;
|
return Employee ?? new Employee { };
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<object?> GetCurrentUserProfileAsync()
|
public async Task<object?> GetCurrentUserProfileAsync()
|
||||||
@ -58,16 +57,7 @@ namespace MarcoBMS.Services.Helpers
|
|||||||
|
|
||||||
public async Task<IdentityUser?> GetRegisteredUser(string email)
|
public async Task<IdentityUser?> GetRegisteredUser(string email)
|
||||||
{
|
{
|
||||||
//IdentityUser? user = await _userManager.Users
|
|
||||||
// .FirstOrDefaultAsync(u => u.Email == model.Email || u.PhoneNumber == model.PhoneNumber);
|
|
||||||
|
|
||||||
|
|
||||||
IdentityUser? user = await _userManager.FindByEmailAsync(email);
|
IdentityUser? user = await _userManager.FindByEmailAsync(email);
|
||||||
//if (user == null)
|
|
||||||
//{
|
|
||||||
// user = await _userManager.Find(model.Email);
|
|
||||||
|
|
||||||
//}
|
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,7 @@ builder.Services.AddCors(options =>
|
|||||||
{
|
{
|
||||||
options.AddPolicy("Policy", policy =>
|
options.AddPolicy("Policy", policy =>
|
||||||
{
|
{
|
||||||
if (allowedOrigins != null)
|
if (allowedOrigins != null && allowedMethods != null && allowedHeaders != null)
|
||||||
{
|
{
|
||||||
policy.WithOrigins(allowedOrigins)
|
policy.WithOrigins(allowedOrigins)
|
||||||
.WithMethods(allowedMethods)
|
.WithMethods(allowedMethods)
|
||||||
@ -93,7 +93,7 @@ builder.Services.AddTransient<IEmailSender, EmailSender>();
|
|||||||
builder.Services.AddIdentity<IdentityUser, IdentityRole>().AddEntityFrameworkStores<ApplicationDbContext>().AddDefaultTokenProviders();
|
builder.Services.AddIdentity<IdentityUser, IdentityRole>().AddEntityFrameworkStores<ApplicationDbContext>().AddDefaultTokenProviders();
|
||||||
|
|
||||||
|
|
||||||
string connString = builder.Configuration.GetConnectionString("DefaultConnectionString");
|
string? connString = builder.Configuration.GetConnectionString("DefaultConnectionString");
|
||||||
|
|
||||||
builder.Services.AddDbContext<ApplicationDbContext>(options =>
|
builder.Services.AddDbContext<ApplicationDbContext>(options =>
|
||||||
{
|
{
|
||||||
@ -122,24 +122,27 @@ builder.Services.AddSingleton<ILoggingService, LoggingService>();
|
|||||||
builder.Services.AddHttpContextAccessor();
|
builder.Services.AddHttpContextAccessor();
|
||||||
|
|
||||||
var jwtSettings = builder.Configuration.GetSection("Jwt").Get<JwtSettings>();
|
var jwtSettings = builder.Configuration.GetSection("Jwt").Get<JwtSettings>();
|
||||||
builder.Services.AddAuthentication(options =>
|
if(jwtSettings != null)
|
||||||
{
|
{
|
||||||
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
|
builder.Services.AddAuthentication(options =>
|
||||||
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
|
|
||||||
})
|
|
||||||
.AddJwtBearer(options =>
|
|
||||||
{
|
|
||||||
options.TokenValidationParameters = new TokenValidationParameters
|
|
||||||
{
|
{
|
||||||
ValidateIssuer = true,
|
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
|
||||||
ValidateAudience = true,
|
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
|
||||||
ValidateLifetime = true,
|
})
|
||||||
ValidateIssuerSigningKey = true,
|
.AddJwtBearer(options =>
|
||||||
ValidIssuer = jwtSettings.Issuer,
|
{
|
||||||
ValidAudience = jwtSettings.Audience,
|
options.TokenValidationParameters = new TokenValidationParameters
|
||||||
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSettings.Key))
|
{
|
||||||
};
|
ValidateIssuer = true,
|
||||||
});
|
ValidateAudience = true,
|
||||||
|
ValidateLifetime = true,
|
||||||
|
ValidateIssuerSigningKey = true,
|
||||||
|
ValidIssuer = jwtSettings.Issuer,
|
||||||
|
ValidAudience = jwtSettings.Audience,
|
||||||
|
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSettings.Key))
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
builder.Services.AddSingleton(jwtSettings);
|
builder.Services.AddSingleton(jwtSettings);
|
||||||
|
|
||||||
|
@ -1,16 +1,11 @@
|
|||||||
using Marco.Pms.DataAccess.Data;
|
using System.IdentityModel.Tokens.Jwt;
|
||||||
|
using System.Security.Claims;
|
||||||
|
using System.Text;
|
||||||
|
using Marco.Pms.DataAccess.Data;
|
||||||
using Marco.Pms.Model.Authentication;
|
using Marco.Pms.Model.Authentication;
|
||||||
using Marco.Pms.Model.Entitlements;
|
|
||||||
using Microsoft.AspNetCore.Identity;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Caching.Memory;
|
using Microsoft.Extensions.Caching.Memory;
|
||||||
using Microsoft.IdentityModel.Tokens;
|
using Microsoft.IdentityModel.Tokens;
|
||||||
using Newtonsoft.Json.Linq;
|
|
||||||
using SharpCompress.Common;
|
|
||||||
using System.IdentityModel.Tokens.Jwt;
|
|
||||||
using System.Security.Claims;
|
|
||||||
using System.Security.Cryptography;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
|
|
||||||
namespace MarcoBMS.Services.Service
|
namespace MarcoBMS.Services.Service
|
||||||
@ -19,12 +14,14 @@ namespace MarcoBMS.Services.Service
|
|||||||
{
|
{
|
||||||
private readonly ApplicationDbContext _context;
|
private readonly ApplicationDbContext _context;
|
||||||
private readonly IMemoryCache _cache; // For optional JWT blacklisting
|
private readonly IMemoryCache _cache; // For optional JWT blacklisting
|
||||||
|
private readonly ILoggingService _logger;
|
||||||
|
|
||||||
|
|
||||||
public RefreshTokenService(ApplicationDbContext context, IMemoryCache cache)
|
public RefreshTokenService(ApplicationDbContext context, IMemoryCache cache, ILoggingService logger)
|
||||||
{
|
{
|
||||||
_context = context;
|
_context = context;
|
||||||
_cache = cache;
|
_cache = cache;
|
||||||
|
_logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GenerateJwtToken(string username, string tenantId, JwtSettings _jwtSettings)
|
public string GenerateJwtToken(string username, string tenantId, JwtSettings _jwtSettings)
|
||||||
@ -94,13 +91,14 @@ namespace MarcoBMS.Services.Service
|
|||||||
return strToken;
|
return strToken;
|
||||||
}catch(Exception ex)
|
}catch(Exception ex)
|
||||||
{
|
{
|
||||||
|
_logger.LogError("{Error}", ex.Message);
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<RefreshToken> GetRefreshToken(string token)
|
public async Task<RefreshToken> GetRefreshToken(string token)
|
||||||
{
|
{
|
||||||
return await _context.RefreshTokens.FirstOrDefaultAsync(rt => rt.Token == token && !rt.IsRevoked && !rt.IsUsed);
|
return await _context.RefreshTokens.FirstOrDefaultAsync(rt => rt.Token == token && !rt.IsRevoked && !rt.IsUsed) ?? new RefreshToken();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task MarkRefreshTokenAsUsed(RefreshToken refreshToken)
|
public async Task MarkRefreshTokenAsUsed(RefreshToken refreshToken)
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
"Override": {
|
"Override": {
|
||||||
"Microsoft": "Warning",
|
"Microsoft": "Warning",
|
||||||
"Microsoft.EntityFrameworkCore.Database.Command": "Warning",
|
"Microsoft.EntityFrameworkCore.Database.Command": "Warning",
|
||||||
"Microsoft.AspNetCore.Mvc.Infrastructure": "Warning",
|
"Microsoft.AspNetCore.Mvc.Infrastructure": "Warning"
|
||||||
//"Serilog.AspNetCore.RequestLoggingMiddleware": "Warning"
|
//"Serilog.AspNetCore.RequestLoggingMiddleware": "Warning"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -64,7 +64,7 @@
|
|||||||
|
|
||||||
"ConnectionStrings": {
|
"ConnectionStrings": {
|
||||||
// "DefaultConnectionString": "Server=103.50.160.45;User ID=marcowvh_admin;Password=Marcoemp@123;Database=marcowvh_empattendanceci",
|
// "DefaultConnectionString": "Server=103.50.160.45;User ID=marcowvh_admin;Password=Marcoemp@123;Database=marcowvh_empattendanceci",
|
||||||
"DefaultConnectionString": "Server=localhost;port=3306;User ID=root;Password=root;Database=MarcoBMS2",
|
"DefaultConnectionString": "Server=localhost;port=3306;User ID=root;Password=root;Database=MarcoBMS2"
|
||||||
//"DefaultConnectionString": "Server=147.93.98.152;User ID=devuser;Password=AppUser@123$;Database=MarcoBMS1"
|
//"DefaultConnectionString": "Server=147.93.98.152;User ID=devuser;Password=AppUser@123$;Database=MarcoBMS1"
|
||||||
},
|
},
|
||||||
"AppSettings": {
|
"AppSettings": {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user