diff --git a/Controllers/VehicleController.cs b/Controllers/VehicleController.cs index d5dc9cc..b6590e3 100644 --- a/Controllers/VehicleController.cs +++ b/Controllers/VehicleController.cs @@ -672,6 +672,9 @@ namespace CarCareTracker.Controllers { viewModel.Years.Add(DateTime.Now.AddYears(i * -1).Year); } + //get collaborators + var collaborators = _userLogic.GetCollaboratorsForVehicle(vehicleId); + viewModel.Collaborators = collaborators; return PartialView("_Report", viewModel); } [HttpGet] diff --git a/Logic/UserLogic.cs b/Logic/UserLogic.cs index b83075b..187904a 100644 --- a/Logic/UserLogic.cs +++ b/Logic/UserLogic.cs @@ -6,6 +6,7 @@ namespace CarCareTracker.Logic { public interface IUserLogic { + List GetCollaboratorsForVehicle(int vehicleId); bool AddUserAccessToVehicle(int userId, int vehicleId, UserAccessType accessType); List FilterUserVehicles(List results, int userId); bool UserCanAccessVehicle(int userId, int vehicleId); @@ -16,8 +17,28 @@ namespace CarCareTracker.Logic public class UserLogic: IUserLogic { private readonly IUserAccessDataAccess _userAccess; - public UserLogic(IUserAccessDataAccess userAccess) { + private readonly IUserRecordDataAccess _userData; + public UserLogic(IUserAccessDataAccess userAccess, + IUserRecordDataAccess userData) { _userAccess = userAccess; + _userData = userData; + } + public List GetCollaboratorsForVehicle(int vehicleId) + { + var result = _userAccess.GetUserAccessByVehicleId(vehicleId); + var convertedResult = new List(); + //convert useraccess to usercollaborator + foreach(UserAccess userAccess in result) + { + var userCollaborator = new UserCollaborator + { + UserName = _userData.GetUserRecordById(userAccess.Id.UserId).UserName, + AccessType = userAccess.AccessType, + UserVehicle = userAccess.Id + }; + convertedResult.Add(userCollaborator); + } + return convertedResult; } public bool AddUserAccessToVehicle(int userId, int vehicleId, UserAccessType accessType) { diff --git a/Models/Report/ReportViewModel.cs b/Models/Report/ReportViewModel.cs index 77d4be2..de2b2c8 100644 --- a/Models/Report/ReportViewModel.cs +++ b/Models/Report/ReportViewModel.cs @@ -6,5 +6,6 @@ public CostMakeUpForVehicle CostMakeUpForVehicle { get; set; } = new CostMakeUpForVehicle(); public ReminderMakeUpForVehicle ReminderMakeUpForVehicle { get; set; } = new ReminderMakeUpForVehicle(); public List Years { get; set; } = new List(); + public List Collaborators { get; set; } = new List(); } } diff --git a/Models/User/UserCollaborator.cs b/Models/User/UserCollaborator.cs new file mode 100644 index 0000000..d46c88e --- /dev/null +++ b/Models/User/UserCollaborator.cs @@ -0,0 +1,9 @@ +namespace CarCareTracker.Models +{ + public class UserCollaborator + { + public string UserName { get; set; } + public UserAccessType AccessType { get; set; } + public UserVehicle UserVehicle { get; set; } + } +} diff --git a/Views/Vehicle/_Collaborators.cshtml b/Views/Vehicle/_Collaborators.cshtml new file mode 100644 index 0000000..abe4f93 --- /dev/null +++ b/Views/Vehicle/_Collaborators.cshtml @@ -0,0 +1,7 @@ +@model List +
    + @foreach (UserCollaborator user in Model) + { +
  • @user.UserName
  • + } +
\ No newline at end of file diff --git a/Views/Vehicle/_Report.cshtml b/Views/Vehicle/_Report.cshtml index a97f42b..97a3a2f 100644 --- a/Views/Vehicle/_Report.cshtml +++ b/Views/Vehicle/_Report.cshtml @@ -69,8 +69,16 @@
-
- +
+ +
+
+
+ +
+
+
+ @await Html.PartialAsync("_Collaborators", Model.Collaborators)