81 lines
3.3 KiB
C#
81 lines
3.3 KiB
C#
using AutoMapper;
|
|
using Marco.Pms.DataAccess.Data;
|
|
using Marco.Pms.Model.Dtos.Master;
|
|
using Marco.Pms.Model.Entitlements;
|
|
using Marco.Pms.Model.Master;
|
|
using Marco.Pms.Model.Utilities;
|
|
using Marco.Pms.Services.Service.ServiceInterfaces;
|
|
using MarcoBMS.Services.Helpers;
|
|
using MarcoBMS.Services.Service;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace Marco.Pms.Services.Service
|
|
{
|
|
public class MasterService : IMasterService
|
|
{
|
|
private readonly ApplicationDbContext _context;
|
|
private readonly ILoggingService _logger;
|
|
private readonly UserHelper _userHelper;
|
|
private readonly PermissionServices _permission;
|
|
private readonly IMapper _mapper;
|
|
private readonly Guid tenantId;
|
|
|
|
public MasterService(
|
|
ApplicationDbContext context,
|
|
ILoggingService logger,
|
|
UserHelper userHelper,
|
|
PermissionServices permission,
|
|
IMapper mapper)
|
|
{
|
|
_context = context;
|
|
_logger = logger;
|
|
_userHelper = userHelper;
|
|
_permission = permission;
|
|
_mapper = mapper;
|
|
tenantId = userHelper.GetTenantId();
|
|
}
|
|
|
|
#region =================================================================== Expenses Type APIs ===================================================================
|
|
|
|
public async Task<ApiResponse<object>> GetExpenseTypeListAsync()
|
|
{
|
|
var typeList = await _context.ExpensesTypeMaster.Where(et => et.TenantId == tenantId).ToListAsync();
|
|
return ApiResponse<object>.SuccessResponse(typeList);
|
|
}
|
|
public async Task<ApiResponse<object>> CreateExpenseTypeAsync(ExpensesTypeMasterDto dto)
|
|
{
|
|
var loggedInEmployee = await _userHelper.GetCurrentEmployeeAsync();
|
|
var hasManagePermission = await _permission.HasPermission(PermissionsMaster.ManageMasters, loggedInEmployee.Id);
|
|
if (!hasManagePermission)
|
|
{
|
|
_logger.LogWarning("Access DENIED for employee {EmployeeId} for managing EXPANSES TYPE MASTER.", loggedInEmployee.Id);
|
|
return ApiResponse<object>.ErrorResponse("Access Denied.", "You do not have permission to Upload expenses for this project", 403);
|
|
}
|
|
var expensesType = _mapper.Map<ExpensesTypeMaster>(dto);
|
|
return ApiResponse<object>.SuccessResponse(expensesType);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region =================================================================== Expenses Status APIs ===================================================================
|
|
public async Task<ApiResponse<object>> GetExpenseStatusListAsync()
|
|
{
|
|
var typeList = await _context.ExpensesStatusMaster.Where(et => et.TenantId == tenantId).ToListAsync();
|
|
return ApiResponse<object>.SuccessResponse(typeList);
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
#region =================================================================== Payment mode APIs ===================================================================
|
|
public async Task<ApiResponse<object>> GetPaymentModeListAsync()
|
|
{
|
|
var typeList = await _context.PaymentModeMatser.Where(et => et.TenantId == tenantId).ToListAsync();
|
|
return ApiResponse<object>.SuccessResponse(typeList);
|
|
}
|
|
|
|
|
|
#endregion
|
|
}
|
|
}
|