Solved the issue of not showing final status in list and details API of expesne model
This commit is contained in:
parent
a1db851edd
commit
57d7b4c07b
@ -1042,16 +1042,24 @@ namespace Marco.Pms.Services.Service
|
||||
NextStatus = g.Select(s => s.NextStatus).ToList()
|
||||
}).ToListAsync();
|
||||
});
|
||||
var statusTask = Task.Run(async () =>
|
||||
{
|
||||
await using var dbContext = await _dbContextFactory.CreateDbContextAsync();
|
||||
return await dbContext.ExpensesStatusMaster
|
||||
.AsNoTracking()
|
||||
.Where(es => statusIds.Contains(es.Id))
|
||||
.ToListAsync();
|
||||
});
|
||||
|
||||
// Await all prerequisite checks at once.
|
||||
await Task.WhenAll(projectTask, expenseTypeTask, paymentModeTask, statusMappingTask, paidByTask, createdByTask);
|
||||
await Task.WhenAll(projectTask, expenseTypeTask, paymentModeTask, statusMappingTask, paidByTask, createdByTask, statusTask);
|
||||
|
||||
var projects = await projectTask;
|
||||
var expenseTypes = await expenseTypeTask;
|
||||
var paymentModes = await paymentModeTask;
|
||||
var statusMappings = await statusMappingTask;
|
||||
var paidBys = await paidByTask;
|
||||
var createdBys = await createdByTask;
|
||||
var projects = projectTask.Result;
|
||||
var expenseTypes = expenseTypeTask.Result;
|
||||
var paymentModes = paymentModeTask.Result;
|
||||
var statusMappings = statusMappingTask.Result;
|
||||
var paidBys = paidByTask.Result;
|
||||
var createdBys = createdByTask.Result;
|
||||
|
||||
expenseList = model.Select(m =>
|
||||
{
|
||||
@ -1061,6 +1069,11 @@ namespace Marco.Pms.Services.Service
|
||||
response.PaidBy = paidBys.Where(p => p.Id == m.PaidById).Select(p => _mapper.Map<BasicEmployeeVM>(p)).FirstOrDefault();
|
||||
response.CreatedBy = createdBys.Where(e => e.Id == m.CreatedById).Select(e => _mapper.Map<BasicEmployeeVM>(e)).FirstOrDefault();
|
||||
response.Status = statusMappings.Where(s => s.StatusId == m.StatusId).Select(s => _mapper.Map<ExpensesStatusMasterVM>(s.Status)).FirstOrDefault();
|
||||
if (response.Status == null)
|
||||
{
|
||||
var status = statusTask.Result;
|
||||
response.Status = status.Where(s => s.Id == m.StatusId).Select(s => _mapper.Map<ExpensesStatusMasterVM>(s)).FirstOrDefault();
|
||||
}
|
||||
response.NextStatus = statusMappings.Where(s => s.StatusId == m.StatusId).Select(s => _mapper.Map<List<ExpensesStatusMasterVM>>(s.NextStatus)).FirstOrDefault();
|
||||
response.PaymentMode = paymentModes.Where(pm => pm.Id == m.PaymentModeId).Select(pm => _mapper.Map<PaymentModeMatserVM>(pm)).FirstOrDefault();
|
||||
response.ExpensesType = expenseTypes.Where(et => et.Id == m.ExpensesTypeId).Select(et => _mapper.Map<ExpensesTypeMasterVM>(et)).FirstOrDefault();
|
||||
@ -1112,16 +1125,22 @@ namespace Marco.Pms.Services.Service
|
||||
NextStatus = g.Select(s => s.NextStatus).ToList()
|
||||
}).FirstOrDefaultAsync();
|
||||
});
|
||||
|
||||
var statusTask = Task.Run(async () =>
|
||||
{
|
||||
await using var dbContext = await _dbContextFactory.CreateDbContextAsync();
|
||||
return await dbContext.ExpensesStatusMaster
|
||||
.AsNoTracking()
|
||||
.FirstOrDefaultAsync(es => es.Id == Guid.Parse(model.StatusId));
|
||||
});
|
||||
// Await all prerequisite checks at once.
|
||||
await Task.WhenAll(projectTask, expenseTypeTask, paymentModeTask, statusMappingTask, paidByTask, createdByTask);
|
||||
await Task.WhenAll(projectTask, expenseTypeTask, paymentModeTask, statusMappingTask, paidByTask, createdByTask, statusTask);
|
||||
|
||||
var project = await projectTask;
|
||||
var expenseType = await expenseTypeTask;
|
||||
var paymentMode = await paymentModeTask;
|
||||
var statusMapping = await statusMappingTask;
|
||||
var paidBy = await paidByTask;
|
||||
var createdBy = await createdByTask;
|
||||
var project = projectTask.Result;
|
||||
var expenseType = expenseTypeTask.Result;
|
||||
var paymentMode = paymentModeTask.Result;
|
||||
var statusMapping = statusMappingTask.Result;
|
||||
var paidBy = paidByTask.Result;
|
||||
var createdBy = createdByTask.Result;
|
||||
|
||||
var response = _mapper.Map<ExpenseDetailsVM>(model);
|
||||
|
||||
@ -1133,6 +1152,11 @@ namespace Marco.Pms.Services.Service
|
||||
if (statusMapping != null)
|
||||
{
|
||||
response.Status = _mapper.Map<ExpensesStatusMasterVM>(statusMapping.Status);
|
||||
if (response.Status == null)
|
||||
{
|
||||
var status = statusTask.Result;
|
||||
response.Status = _mapper.Map<ExpensesStatusMasterVM>(status);
|
||||
}
|
||||
response.NextStatus = _mapper.Map<List<ExpensesStatusMasterVM>>(statusMapping.NextStatus);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user