diff --git a/Marco.Pms.Model/Dtos/Tenant/UpdateTenantDto.cs b/Marco.Pms.Model/Dtos/Tenant/UpdateTenantDto.cs new file mode 100644 index 0000000..5131ed1 --- /dev/null +++ b/Marco.Pms.Model/Dtos/Tenant/UpdateTenantDto.cs @@ -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; } + } +} diff --git a/Marco.Pms.Model/ViewModels/Tenant/TenantVM.cs b/Marco.Pms.Model/ViewModels/Tenant/TenantVM.cs index 36b6066..c8a1d7a 100644 --- a/Marco.Pms.Model/ViewModels/Tenant/TenantVM.cs +++ b/Marco.Pms.Model/ViewModels/Tenant/TenantVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Text; diff --git a/Marco.Pms.Services/Controllers/TenantController.cs b/Marco.Pms.Services/Controllers/TenantController.cs index dd0dccc..67957f2 100644 --- a/Marco.Pms.Services/Controllers/TenantController.cs +++ b/Marco.Pms.Services/Controllers/TenantController.cs @@ -20,8 +20,8 @@ namespace Marco.Pms.Services.Controllers private readonly string jsonString = System.IO.File.ReadAllText("Data/RolesCofiguration.json"); private readonly ApplicationDbContext _context; private readonly UserManager _userManager; - private readonly ILoggingService _logger; - public TenantController(ApplicationDbContext context,UserManager userManager, ILoggingService logger) + private readonly ILoggingService _logger; + public TenantController(ApplicationDbContext context, UserManager userManager, ILoggingService logger) { _context = context; _userManager = userManager; @@ -64,9 +64,9 @@ namespace Marco.Pms.Services.Controllers TenantId = TenantId }; - _context.JobRoles.Add(jobRole); - _context.ApplicationRoles.Add(role); - await _context.SaveChangesAsync(); + _context.JobRoles.Add(jobRole); + _context.ApplicationRoles.Add(role); + await _context.SaveChangesAsync(); List permissions = await _context.FeaturePermissions.AsNoTracking().ToListAsync(); @@ -95,7 +95,7 @@ namespace Marco.Pms.Services.Controllers var result = await _userManager.CreateAsync(user, createTenantDto.Password); 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); await _context.SaveChangesAsync(); @@ -116,7 +116,7 @@ namespace Marco.Pms.Services.Controllers foreach (var error in result.Errors) { // Log error.Description - _logger.LogError("{Error}",error.Description); + _logger.LogError("{Error}", error.Description); } return BadRequest("Failed to create the root user."); } @@ -138,10 +138,36 @@ namespace Marco.Pms.Services.Controllers return NotFound("Tenant Not Found"); } TenantVM tenantVM = tenant.ToTenantVMFromTenant(); - return Ok(ApiResponse.SuccessResponse(tenantVM, "Tenant Profile.", 200)); + return Ok(ApiResponse.SuccessResponse(tenantVM, "Tenant Profile.", 200)); } - - private static Employee CreateTenantDtoToEmployee(CreateTenantDto model, int TenantId, string? ApplicationUserId,int jobRoleId) + + [HttpPost("edit/{tenantId}")] + public async Task 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.SuccessResponse(tenantVM, "Tenant Profile.", 200)); + } + + private static Employee CreateTenantDtoToEmployee(CreateTenantDto model, int TenantId, string? ApplicationUserId, int jobRoleId) { return new Employee { @@ -167,7 +193,7 @@ namespace Marco.Pms.Services.Controllers }; } - + } - + }