Organization_Management #142

Merged
ashutosh.nehete merged 92 commits from Organization_Management into main 2025-09-30 09:05:14 +00:00
Showing only changes of commit 55cae17ed1 - Show all commits

View File

@ -29,6 +29,7 @@ namespace Marco.Pms.Services.Controllers
private readonly ILoggingService _logger; private readonly ILoggingService _logger;
private static readonly Guid PMCProvider = Guid.Parse("b1877a3b-8832-47b1-bbe3-dc7e98672f49"); private static readonly Guid PMCProvider = Guid.Parse("b1877a3b-8832-47b1-bbe3-dc7e98672f49");
private static readonly Guid superTenantId = Guid.Parse("b3466e83-7e11-464c-b93a-daf047838b26");
public OrganizationController(IDbContextFactory<ApplicationDbContext> dbContextFactory, public OrganizationController(IDbContextFactory<ApplicationDbContext> dbContextFactory,
IServiceScopeFactory serviceScope, IServiceScopeFactory serviceScope,
UserHelper userHelper, UserHelper userHelper,
@ -43,54 +44,61 @@ namespace Marco.Pms.Services.Controllers
tenantId = userHelper.GetTenantId(); tenantId = userHelper.GetTenantId();
} }
#region =================================================================== Get Functions =================================================================== #region =================================================================== Get Functions ===================================================================
//[HttpGet("list")]
//public async Task<IActionResult> GetListServiceProviderAsync([FromQuery] string? searchString, [FromQuery] string? filter, [FromQuery] bool active = true,
// [FromQuery] int pageNumber = 1, [FromQuery] int pageSize = 1)
//{
// await using var _context = await _dbContextFactory.CreateDbContextAsync();
// using var scope = _serviceScope.CreateScope();
// var loggedInEmployee = await _userHelper.GetCurrentEmployeeAsync(); [HttpGet("list")]
public async Task<IActionResult> GetOrganizarionListAsync([FromQuery] string? searchString, [FromQuery] double? sprid, [FromQuery] bool active = true,
[FromQuery] int pageNumber = 1, [FromQuery] int pageSize = 20)
{
await using var _context = await _dbContextFactory.CreateDbContextAsync();
using var scope = _serviceScope.CreateScope();
// var serviceProviderQuery = _context.ServiceProviders var loggedInEmployee = await _userHelper.GetCurrentEmployeeAsync();
// .Include(sp => sp.ProviderType)
// .Where(sp => sp.TenantId == tenantId && sp.IsActive == active);
// var filterObject = TryDeserializeServicesProviderFilter(filter); var organizationQuery = _context.Organizations
.Where(o => o.IsActive == active);
// if (filterObject != null) if (tenantId != superTenantId)
// { {
// if (filterObject.ProviderTypeIds?.Any() ?? false) var organizationIds = await _context.TenantOrgMappings.Where(to => to.TenantId == tenantId && to.IsActive).Select(to => to.OrganizationId).ToListAsync();
// { organizationQuery = organizationQuery.Where(o => organizationIds.Contains(o.Id));
// serviceProviderQuery = serviceProviderQuery.Where(sp => filterObject.ProviderTypeIds.Contains(sp.ProviderTypeId)); }
// }
// }
// if (!string.IsNullOrWhiteSpace(searchString)) if (sprid.HasValue)
// { {
// if (!(Int32.TryParse(searchString, out int num))) organizationQuery = organizationQuery.Where(o => o.SPRID == sprid.Value);
// { }
// num = 0;
// }
// serviceProviderQuery = serviceProviderQuery.Where(sp =>
// sp.ProviderName.Contains(searchString) ||
// sp.ContactPerson.Contains(searchString) ||
// sp.Address.Contains(searchString) ||
// sp.Email.Contains(searchString) ||
// sp.PhoneNumber.Contains(searchString) ||
// sp.SPRID == num);
// }
// var serviceProviders = await serviceProviderQuery if (!string.IsNullOrWhiteSpace(searchString))
// .OrderBy(e => e.ProviderName) {
// .Skip((pageNumber - 1) * pageSize) organizationQuery = organizationQuery.Where(sp =>
// .Take(pageSize) sp.Name.Contains(searchString) ||
// .ToListAsync(); sp.ContactPerson.Contains(searchString) ||
sp.Address.Contains(searchString) ||
sp.Email.Contains(searchString) ||
sp.ContactNumber.Contains(searchString));
}
// var response = _mapper.Map<List<OrganizationVM>>(serviceProviders); var organizations = await organizationQuery
.OrderBy(e => e.Name)
.Skip((pageNumber - 1) * pageSize)
.Take(pageSize)
.ToListAsync();
// return Ok(ApiResponse<object>.SuccessResponse(response, "Successfully fetched the Service Provider list", 200)); var createdByIds = organizations.Where(o => o.CreatedById != null).Select(o => o.CreatedById).ToList();
//} var updatedByIds = organizations.Where(o => o.UpdatedById != null).Select(o => o.UpdatedById).ToList();
var employees = await _context.Employees.Where(e => createdByIds.Contains(e.Id) || updatedByIds.Contains(e.Id)).ToListAsync();
var response = organizations.Select(o =>
{
var result = _mapper.Map<OrganizationVM>(o);
result.CreatedBy = employees.Where(e => e.Id == o.CreatedById).Select(e => _mapper.Map<BasicEmployeeVM>(e)).FirstOrDefault();
result.UpdatedBy = employees.Where(e => e.Id == o.UpdatedById).Select(e => _mapper.Map<BasicEmployeeVM>(e)).FirstOrDefault();
return result;
});
return Ok(ApiResponse<object>.SuccessResponse(response, "Successfully fetched the Service Provider list", 200));
}
#endregion #endregion