functionality to duplicate collaborators across vehicles.

This commit is contained in:
DESKTOP-GENO133\IvanPlex
2024-02-17 10:51:39 -07:00
parent 7fd7f7e29d
commit e700a5f1c2
3 changed files with 75 additions and 2 deletions

View File

@@ -154,6 +154,34 @@ namespace CarCareTracker.Controllers
_dataAccess.DeleteVehicle(vehicleId);
return Json(result);
}
[HttpPost]
public IActionResult DuplicateVehicleCollaborators(int sourceVehicleId, int destVehicleId)
{
try
{
//retrieve collaborators for both source and destination vehicle id.
if (_userLogic.UserCanEditVehicle(GetUserID(), sourceVehicleId) && _userLogic.UserCanEditVehicle(GetUserID(), destVehicleId))
{
var sourceCollaborators = _userLogic.GetCollaboratorsForVehicle(sourceVehicleId).Select(x => x.UserVehicle.UserId).ToList();
var destCollaborators = _userLogic.GetCollaboratorsForVehicle(destVehicleId).Select(x => x.UserVehicle.UserId).ToList();
sourceCollaborators.RemoveAll(x => destCollaborators.Contains(x));
if (sourceCollaborators.Any()) {
foreach (int collaboratorId in sourceCollaborators)
{
_userLogic.AddUserAccessToVehicle(collaboratorId, destVehicleId);
}
} else
{
return Json(new OperationResponse { Success = false, Message = "All collaborators already exist in destination vehicle" });
}
}
return Json(new OperationResponse { Success = true, Message = "Collaborators Copied"});
} catch (Exception ex)
{
_logger.LogError(ex.Message);
return Json(new OperationResponse { Success = false, Message = StaticHelper.GenericErrorMessage });
}
}
#region "Bulk Imports and Exports"
[HttpGet]
public IActionResult GetBulkImportModalPartialView(ImportMode mode)
@@ -1906,5 +1934,6 @@ namespace CarCareTracker.Controllers
return Json(result);
}
#endregion
}
}