Sending pre signed url in task list API
This commit is contained in:
parent
76b6ac6581
commit
691a670a28
@ -11,6 +11,7 @@ namespace Marco.Pms.Model.ViewModels.Activities
|
|||||||
public double CompletedTask { get; set; }
|
public double CompletedTask { get; set; }
|
||||||
public BasicEmployeeVM? AssignedBy { get; set; }
|
public BasicEmployeeVM? AssignedBy { get; set; }
|
||||||
public Guid WorkItemId { get; set; }
|
public Guid WorkItemId { get; set; }
|
||||||
|
public List<string>? PreSignedUrls { get; set; }
|
||||||
public WorkItem? WorkItem { get; set; }
|
public WorkItem? WorkItem { get; set; }
|
||||||
public List<BasicEmployeeVM>? teamMembers { get; set; }
|
public List<BasicEmployeeVM>? teamMembers { get; set; }
|
||||||
public List<CommentVM>? comments { get; set; }
|
public List<CommentVM>? comments { get; set; }
|
||||||
|
@ -317,6 +317,13 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
|
|
||||||
List<Employee> employees = await _context.Employees.Where(e => employeeIdList.Contains(e.Id)).Include(e => e.JobRole).ToListAsync();
|
List<Employee> employees = await _context.Employees.Where(e => employeeIdList.Contains(e.Id)).Include(e => e.JobRole).ToListAsync();
|
||||||
|
|
||||||
|
List<TaskComment> allComments = await _context.TaskComments.Where(c => taskIdList.Contains(c.TaskAllocationId)).ToListAsync();
|
||||||
|
var allCommentIds = allComments.Select(c => c.Id).ToList();
|
||||||
|
|
||||||
|
var taskAttachments = await _context.TaskAttachments.Where(t => taskIdList.Contains(t.ReferenceId) || allCommentIds.Contains(t.ReferenceId)).ToListAsync();
|
||||||
|
var documentIds = taskAttachments.Select(t => t.DocumentId).ToList();
|
||||||
|
var documents = await _context.Documents.Where(d => documentIds.Contains(d.Id)).ToListAsync();
|
||||||
|
|
||||||
List<ListTaskVM> tasks = new List<ListTaskVM>();
|
List<ListTaskVM> tasks = new List<ListTaskVM>();
|
||||||
//foreach (var workItem in workItems)
|
//foreach (var workItem in workItems)
|
||||||
//{
|
//{
|
||||||
@ -325,10 +332,21 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
|
|
||||||
var response = taskAllocation.ToListTaskVMFromTaskAllocation();
|
var response = taskAllocation.ToListTaskVMFromTaskAllocation();
|
||||||
|
|
||||||
List<TaskComment> comments = await _context.TaskComments.Where(c => c.TaskAllocationId == taskAllocation.Id).ToListAsync();
|
List<TaskComment> comments = allComments.Where(c => c.TaskAllocationId == taskAllocation.Id).ToList();
|
||||||
List<BasicEmployeeVM> team = new List<BasicEmployeeVM>();
|
List<BasicEmployeeVM> team = new List<BasicEmployeeVM>();
|
||||||
List<TaskMembers> taskMembers = teamMembers.Where(m => m.TaskAllocationId == taskAllocation.Id).ToList();
|
List<TaskMembers> taskMembers = teamMembers.Where(m => m.TaskAllocationId == taskAllocation.Id).ToList();
|
||||||
|
|
||||||
|
var taskDocumentIds = taskAttachments.Where(t => t.ReferenceId == taskAllocation.Id).Select(t => t.DocumentId).ToList();
|
||||||
|
var taskDocuments = documents.Where(d => taskDocumentIds.Contains(d.Id)).ToList();
|
||||||
|
|
||||||
|
List<string> taskPreSignedUrls = new List<string>();
|
||||||
|
foreach (var document in taskDocuments)
|
||||||
|
{
|
||||||
|
string preSignedUrl = _s3Service.GeneratePreSignedUrlAsync(document.S3Key);
|
||||||
|
taskPreSignedUrls.Add(preSignedUrl);
|
||||||
|
}
|
||||||
|
response.PreSignedUrls = taskPreSignedUrls;
|
||||||
|
|
||||||
foreach (var taskMember in taskMembers)
|
foreach (var taskMember in taskMembers)
|
||||||
{
|
{
|
||||||
var teamMember = employees.Find(e => e.Id == taskMember.EmployeeId);
|
var teamMember = employees.Find(e => e.Id == taskMember.EmployeeId);
|
||||||
@ -340,7 +358,18 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
List<CommentVM> commentVM = new List<CommentVM> { };
|
List<CommentVM> commentVM = new List<CommentVM> { };
|
||||||
foreach (var comment in comments)
|
foreach (var comment in comments)
|
||||||
{
|
{
|
||||||
commentVM.Add(comment.ToCommentVMFromTaskComment());
|
var commentDocumentIds = taskAttachments.Where(t => t.ReferenceId == comment.Id).Select(t => t.DocumentId).ToList();
|
||||||
|
var commentDocuments = documents.Where(d => commentDocumentIds.Contains(d.Id)).ToList();
|
||||||
|
List<string> commentPreSignedUrls = new List<string>();
|
||||||
|
foreach (var document in commentDocuments)
|
||||||
|
{
|
||||||
|
string preSignedUrl = _s3Service.GeneratePreSignedUrlAsync(document.S3Key);
|
||||||
|
commentPreSignedUrls.Add(preSignedUrl);
|
||||||
|
}
|
||||||
|
CommentVM commentVm = comment.ToCommentVMFromTaskComment();
|
||||||
|
commentVm.PreSignedUrls = commentPreSignedUrls;
|
||||||
|
|
||||||
|
commentVM.Add(commentVm);
|
||||||
}
|
}
|
||||||
List<ActivityCheckList> checkLists = await _context.ActivityCheckLists.Where(x => x.ActivityId == (taskAllocation.WorkItem != null ? taskAllocation.WorkItem.ActivityId : Guid.Empty)).ToListAsync();
|
List<ActivityCheckList> checkLists = await _context.ActivityCheckLists.Where(x => x.ActivityId == (taskAllocation.WorkItem != null ? taskAllocation.WorkItem.ActivityId : Guid.Empty)).ToListAsync();
|
||||||
List<CheckListMappings> checkListMappings = await _context.CheckListMappings.Where(c => c.TaskAllocationId == taskAllocation.Id).ToListAsync();
|
List<CheckListMappings> checkListMappings = await _context.CheckListMappings.Where(c => c.TaskAllocationId == taskAllocation.Id).ToListAsync();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user