Compare commits

...

4 Commits

3 changed files with 54 additions and 13 deletions

View File

@ -0,0 +1,15 @@
namespace Marco.Pms.Model.Dtos.Tenant
{
public class UpdateTenantDto
{
public string OrganizatioinName { get; set; }
public string About { get; set; }
public string Website { get; set; }
public string Name { get; set; }
public string ContactNumber { get; set; }
//public string? OragnizationSize { get; set; }
//public int IndustryId { get; set; }
public DateTime OnBoardingDate { get; set; }
}
}

View File

@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;

View File

@ -20,8 +20,8 @@ namespace Marco.Pms.Services.Controllers
private readonly string jsonString = System.IO.File.ReadAllText("Data/RolesCofiguration.json"); private readonly string jsonString = System.IO.File.ReadAllText("Data/RolesCofiguration.json");
private readonly ApplicationDbContext _context; private readonly ApplicationDbContext _context;
private readonly UserManager<IdentityUser> _userManager; private readonly UserManager<IdentityUser> _userManager;
private readonly ILoggingService _logger; private readonly ILoggingService _logger;
public TenantController(ApplicationDbContext context,UserManager<IdentityUser> userManager, ILoggingService logger) public TenantController(ApplicationDbContext context, UserManager<IdentityUser> userManager, ILoggingService logger)
{ {
_context = context; _context = context;
_userManager = userManager; _userManager = userManager;
@ -64,9 +64,9 @@ namespace Marco.Pms.Services.Controllers
TenantId = TenantId TenantId = TenantId
}; };
_context.JobRoles.Add(jobRole); _context.JobRoles.Add(jobRole);
_context.ApplicationRoles.Add(role); _context.ApplicationRoles.Add(role);
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
List<FeaturePermission> permissions = await _context.FeaturePermissions.AsNoTracking().ToListAsync(); List<FeaturePermission> permissions = await _context.FeaturePermissions.AsNoTracking().ToListAsync();
@ -95,7 +95,7 @@ namespace Marco.Pms.Services.Controllers
var result = await _userManager.CreateAsync(user, createTenantDto.Password); var result = await _userManager.CreateAsync(user, createTenantDto.Password);
if (result.Succeeded) if (result.Succeeded)
{ {
Employee newEmployee = CreateTenantDtoToEmployee(createTenantDto, TenantId, user.Id,jobRole.Id); Employee newEmployee = CreateTenantDtoToEmployee(createTenantDto, TenantId, user.Id, jobRole.Id);
_context.Employees.Add(newEmployee); _context.Employees.Add(newEmployee);
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
@ -116,7 +116,7 @@ namespace Marco.Pms.Services.Controllers
foreach (var error in result.Errors) foreach (var error in result.Errors)
{ {
// Log error.Description // Log error.Description
_logger.LogError("{Error}",error.Description); _logger.LogError("{Error}", error.Description);
} }
return BadRequest("Failed to create the root user."); return BadRequest("Failed to create the root user.");
} }
@ -138,10 +138,36 @@ namespace Marco.Pms.Services.Controllers
return NotFound("Tenant Not Found"); return NotFound("Tenant Not Found");
} }
TenantVM tenantVM = tenant.ToTenantVMFromTenant(); TenantVM tenantVM = tenant.ToTenantVMFromTenant();
return Ok(ApiResponse<object>.SuccessResponse(tenantVM, "Tenant Profile.", 200)); return Ok(ApiResponse<object>.SuccessResponse(tenantVM, "Tenant Profile.", 200));
} }
private static Employee CreateTenantDtoToEmployee(CreateTenantDto model, int TenantId, string? ApplicationUserId,int jobRoleId) [HttpPost("edit/{tenantId}")]
public async Task<IActionResult> SuspendTenant(int tenantId, UpdateTenantDto model)
{
if (tenantId <= 0)
{
return BadRequest("Tenant Id is required and must be greater than zero.");
}
var tenant = await _context.Tenants.FirstOrDefaultAsync(t => t.Id == tenantId);
//var user = await _context.ApplicationUsers.FirstOrDefaultAsync(u => u.TenantId == tenantId && u.IsRootUser == true);
//var employee = await _context.Employees.FirstOrDefaultAsync(e => e.Id == tenantId && e.ApplicationUserId == user.Id);
if (tenant == null)
{
return NotFound("Tenant Not Found");
}
tenant.Name = model.OrganizatioinName;
tenant.DomainName = model.Website;
tenant.ContactName = model.Name;
tenant.Description = model.About;
tenant.ContactNumber = model.ContactNumber;
tenant.OnBoardingDate = model.OnBoardingDate;
await _context.SaveChangesAsync();
TenantVM tenantVM = tenant.ToTenantVMFromTenant();
return Ok(ApiResponse<object>.SuccessResponse(tenantVM, "Tenant Profile.", 200));
}
private static Employee CreateTenantDtoToEmployee(CreateTenantDto model, int TenantId, string? ApplicationUserId, int jobRoleId)
{ {
return new Employee return new Employee
{ {
@ -167,7 +193,7 @@ namespace Marco.Pms.Services.Controllers
}; };
} }
} }
} }