revert 37534e9b31afa317865665c805b83a4fa8edd3ab
revert If a checklist item is removed while updating an activity, it must also be deleted from the database.
This commit is contained in:
parent
37534e9b31
commit
54b43b742a
@ -105,45 +105,25 @@ namespace Marco.Pms.Services.Controllers
|
||||
|
||||
activity.ActivityName = createActivity.ActivityName;
|
||||
activity.UnitOfMeasurement = createActivity.UnitOfMeasurement;
|
||||
List<ActivityCheckList> activityCheckLists = await _context.ActivityCheckLists.AsNoTracking().Where(c => c.ActivityId == activity.Id).ToListAsync();
|
||||
List<CheckListVM> checkListVM = new List<CheckListVM>();
|
||||
|
||||
if (createActivity.CheckList != null)
|
||||
{
|
||||
var newCheckIds = createActivity.CheckList.Select(c => c.Id);
|
||||
List<ActivityCheckList> updateCheckList = new List<ActivityCheckList>();
|
||||
List<ActivityCheckList> deleteCheckList = new List<ActivityCheckList>();
|
||||
foreach (var check in activityCheckLists)
|
||||
List<ActivityCheckList> activityCheckList = new List<ActivityCheckList>();
|
||||
foreach (var check in createActivity.CheckList)
|
||||
{
|
||||
if (newCheckIds.Contains(check.Id))
|
||||
{
|
||||
var updatedCheck = createActivity.CheckList.Find(c => c.Id == check.Id);
|
||||
ActivityCheckList checkList = updatedCheck.ToActivityCheckListFromCreateCheckListDto(tenantId, activity.Id);
|
||||
updateCheckList.Add(checkList);
|
||||
}
|
||||
else
|
||||
{
|
||||
deleteCheckList.Add(check);
|
||||
}
|
||||
}
|
||||
_context.ActivityCheckLists.UpdateRange(updateCheckList);
|
||||
if (deleteCheckList != null)
|
||||
{
|
||||
_context.ActivityCheckLists.RemoveRange(deleteCheckList);
|
||||
ActivityCheckList checkList = check.ToActivityCheckListFromCreateCheckListDto(tenantId, activity.Id);
|
||||
activityCheckList.Add(checkList);
|
||||
}
|
||||
_context.ActivityCheckLists.UpdateRange(activityCheckList);
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
foreach (ActivityCheckList check in updateCheckList)
|
||||
foreach (ActivityCheckList check in activityCheckList)
|
||||
{
|
||||
var checkVM = check.ToCheckListVMFromActivityCheckList(activity.Id, false);
|
||||
checkListVM.Add(checkVM);
|
||||
}
|
||||
}
|
||||
else if (activityCheckLists != null)
|
||||
{
|
||||
_context.ActivityCheckLists.RemoveRange(activityCheckLists);
|
||||
await _context.SaveChangesAsync();
|
||||
}
|
||||
ActivityVM activityVM = activity.ToActivityVMFromActivityMaster(checkListVM);
|
||||
_logger.LogInfo("activity updated successfully from tenant {tenantId}", tenantId);
|
||||
return Ok(ApiResponse<object>.SuccessResponse(activityVM, "activity updated successfully", 200));
|
||||
|
Loading…
x
Reference in New Issue
Block a user