Added the VM in assign organization to project
This commit is contained in:
parent
de883103d5
commit
efd8667774
8
Marco.Pms.Model/Dtos/Projects/AssignServiceDto.cs
Normal file
8
Marco.Pms.Model/Dtos/Projects/AssignServiceDto.cs
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
namespace Marco.Pms.Model.Dtos.Projects
|
||||||
|
{
|
||||||
|
public class AssignServiceDto
|
||||||
|
{
|
||||||
|
public required Guid ProjectId { get; set; }
|
||||||
|
public required List<Guid> ServiceIds { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
using Marco.Pms.Model.OrganizationModel;
|
||||||
|
using Marco.Pms.Model.ViewModels.Master;
|
||||||
|
using Marco.Pms.Model.ViewModels.Projects;
|
||||||
|
|
||||||
|
namespace Marco.Pms.Model.ViewModels.Organization
|
||||||
|
{
|
||||||
|
public class AssignOrganizationVm
|
||||||
|
{
|
||||||
|
public BasicProjectVM? Project { get; set; }
|
||||||
|
public BasicOrganizationVm? Organization { get; set; }
|
||||||
|
public BasicOrganizationVm? ParentOrganization { get; set; }
|
||||||
|
public ServiceMasterVM? Service { get; set; }
|
||||||
|
public OrgTypeMaster? OrganizationType { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
namespace Marco.Pms.Model.ViewModels.Organization
|
||||||
|
{
|
||||||
|
public class BasicOrganizationVm
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
public string? Name { get; set; }
|
||||||
|
public string? Email { get; set; }
|
||||||
|
public string? ContactPerson { get; set; }
|
||||||
|
public string? Address { get; set; }
|
||||||
|
public string? ContactNumber { get; set; }
|
||||||
|
public double SPRID { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -6,7 +6,9 @@ using Marco.Pms.Model.Entitlements;
|
|||||||
using Marco.Pms.Model.OrganizationModel;
|
using Marco.Pms.Model.OrganizationModel;
|
||||||
using Marco.Pms.Model.Utilities;
|
using Marco.Pms.Model.Utilities;
|
||||||
using Marco.Pms.Model.ViewModels.Activities;
|
using Marco.Pms.Model.ViewModels.Activities;
|
||||||
|
using Marco.Pms.Model.ViewModels.Master;
|
||||||
using Marco.Pms.Model.ViewModels.Organization;
|
using Marco.Pms.Model.ViewModels.Organization;
|
||||||
|
using Marco.Pms.Model.ViewModels.Projects;
|
||||||
using Marco.Pms.Services.Service;
|
using Marco.Pms.Services.Service;
|
||||||
using MarcoBMS.Services.Helpers;
|
using MarcoBMS.Services.Helpers;
|
||||||
using MarcoBMS.Services.Service;
|
using MarcoBMS.Services.Service;
|
||||||
@ -255,6 +257,18 @@ namespace Marco.Pms.Services.Controllers
|
|||||||
&& sp.PlannedStartDate.Date >= todaysDate && sp.ActualStartDate.Date >= todaysDate).ToListAsync();
|
&& sp.PlannedStartDate.Date >= todaysDate && sp.ActualStartDate.Date >= todaysDate).ToListAsync();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var serviceTask = Task.Run(async () =>
|
||||||
|
{
|
||||||
|
await using var context = await _dbContextFactory.CreateDbContextAsync();
|
||||||
|
return await context.ServiceMasters.Where(s => model.ServiceIds.Contains(s.Id) && s.TenantId == tenantId).ToListAsync();
|
||||||
|
});
|
||||||
|
|
||||||
|
var organizationTypeTask = Task.Run(async () =>
|
||||||
|
{
|
||||||
|
await using var context = await _dbContextFactory.CreateDbContextAsync();
|
||||||
|
return await context.OrgTypeMasters.FirstOrDefaultAsync(o => o.Id == model.OrganizationId);
|
||||||
|
});
|
||||||
|
|
||||||
var organizationTask = Task.Run(async () =>
|
var organizationTask = Task.Run(async () =>
|
||||||
{
|
{
|
||||||
await using var context = await _dbContextFactory.CreateDbContextAsync();
|
await using var context = await _dbContextFactory.CreateDbContextAsync();
|
||||||
@ -286,8 +300,10 @@ namespace Marco.Pms.Services.Controllers
|
|||||||
&& p.OrganizationTypeId == ServiceProvider);
|
&& p.OrganizationTypeId == ServiceProvider);
|
||||||
});
|
});
|
||||||
|
|
||||||
await Task.WhenAll(organizationTask, parentorganizationTask, projectTask, projectServicesTask, isPMCTask, isServiceProviderTask);
|
await Task.WhenAll(organizationTask, parentorganizationTask, projectTask, projectServicesTask, isPMCTask, isServiceProviderTask, serviceTask, organizationTypeTask);
|
||||||
|
|
||||||
|
var services = serviceTask.Result;
|
||||||
|
var organizationType = organizationTypeTask.Result;
|
||||||
var organization = organizationTask.Result;
|
var organization = organizationTask.Result;
|
||||||
var projectServices = projectServicesTask.Result;
|
var projectServices = projectServicesTask.Result;
|
||||||
var parentorganization = parentorganizationTask.Result;
|
var parentorganization = parentorganizationTask.Result;
|
||||||
@ -345,7 +361,7 @@ namespace Marco.Pms.Services.Controllers
|
|||||||
TenantId = project.TenantId,
|
TenantId = project.TenantId,
|
||||||
PlannedStartDate = project.StartDate ?? DateTime.UtcNow,
|
PlannedStartDate = project.StartDate ?? DateTime.UtcNow,
|
||||||
PlannedEndDate = project.EndDate ?? DateTime.UtcNow,
|
PlannedEndDate = project.EndDate ?? DateTime.UtcNow,
|
||||||
ActualStartDate = DateTime.UtcNow,
|
ActualStartDate = DateTime.UtcNow
|
||||||
};
|
};
|
||||||
_context.ProjectServiceMappings.Add(projectService);
|
_context.ProjectServiceMappings.Add(projectService);
|
||||||
}
|
}
|
||||||
@ -365,7 +381,18 @@ namespace Marco.Pms.Services.Controllers
|
|||||||
|
|
||||||
await _context.SaveChangesAsync();
|
await _context.SaveChangesAsync();
|
||||||
|
|
||||||
var response = _mapper.Map<OrganizationVM>(organization);
|
var organizationVm = _mapper.Map<BasicOrganizationVm>(organization);
|
||||||
|
var parentorganizationVm = _mapper.Map<BasicOrganizationVm>(parentorganization);
|
||||||
|
var projectvm = _mapper.Map<BasicProjectVM>(project);
|
||||||
|
|
||||||
|
var response = services.Select(s => new AssignOrganizationVm
|
||||||
|
{
|
||||||
|
Project = projectvm,
|
||||||
|
OrganizationType = organizationType,
|
||||||
|
Organization = organizationVm,
|
||||||
|
ParentOrganization = parentorganizationVm,
|
||||||
|
Service = _mapper.Map<ServiceMasterVM>(s)
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
return Ok(ApiResponse<object>.SuccessResponse(response, "Organization successfully assigned to the project", 200));
|
return Ok(ApiResponse<object>.SuccessResponse(response, "Organization successfully assigned to the project", 200));
|
||||||
}
|
}
|
||||||
|
@ -45,6 +45,7 @@ namespace Marco.Pms.Services.MappingProfiles
|
|||||||
|
|
||||||
CreateMap<CreateOrganizationDto, Organization>();
|
CreateMap<CreateOrganizationDto, Organization>();
|
||||||
CreateMap<Organization, OrganizationVM>();
|
CreateMap<Organization, OrganizationVM>();
|
||||||
|
CreateMap<Organization, BasicOrganizationVm>();
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@ -447,4 +448,4 @@ namespace Marco.Pms.Services.MappingProfiles
|
|||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user