show id and selfie
This commit is contained in:
		
							parent
							
								
									c07ca4dbac
								
							
						
					
					
						commit
						8ae7873453
					
				| @ -137,22 +137,20 @@ | ||||
| 				<!-- Nav tabs --> | ||||
| 				<ul class="nav nav-tabs"> | ||||
| 					<li class="nav-item"> | ||||
| 						<a class="nav-link active" data-bs-toggle="tab" href="#image1">Image 1</a> | ||||
| 						<a class="nav-link active" data-bs-toggle="tab" href="#image1">Identification</a> | ||||
| 					</li> | ||||
| 					<li class="nav-item"> | ||||
| 						<a class="nav-link" data-bs-toggle="tab" href="#image2">Image 2</a> | ||||
| 						<a class="nav-link" data-bs-toggle="tab" href="#image2">Selfie</a> | ||||
| 					</li> | ||||
| 				</ul> | ||||
| 
 | ||||
| 				<!-- Tab panes --> | ||||
| 				<div class="tab-content"> | ||||
| 					<div id="image1" class="container tab-pane active"> | ||||
| 						<br> | ||||
| 						<img src="https://placehold.co/600x400?text=Hello" alt="Image 1" class="img-fluid"> | ||||
| 						<img id="IdentificationImage" src="https://placehold.co/600x400?text=World" alt="Image 2" class="img-fluid"> | ||||
| 					</div> | ||||
| 					<div id="image2" class="container tab-pane fade"> | ||||
| 						<br> | ||||
| 						<img src="https://placehold.co/600x400?text=World" alt="Image 2" class="img-fluid"> | ||||
| 						<img id="SelfieImage" src="https://placehold.co/600x400?text=Hello" alt="Image 1" class="img-fluid"> | ||||
| 					</div> | ||||
| 				</div> | ||||
| 
 | ||||
| @ -161,7 +159,7 @@ | ||||
| 			<!-- Modal Footer --> | ||||
| 			<div class="modal-footer justify-content-start"> | ||||
|                 <div class="flex-fill"> | ||||
|                     <button type="button" class="btn btn-primary" data-bs-dismiss="modal">Approve</button> | ||||
|                     <button type="button" class="btn btn-success" data-bs-dismiss="modal">Approve</button> | ||||
|                     <button type="button" class="btn btn-danger" data-bs-dismiss="modal">Reject</button> | ||||
| 				</div> | ||||
| 				<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button> | ||||
|  | ||||
| @ -113,7 +113,7 @@ namespace EnotaryoPH.Web.Pages.Participant.VideoCall | ||||
|                 var participants = _Transaction.Schedule.LawyerVideoConferenceParticipants.ConvertAll(p => | ||||
|                     new RoomParticipantViewModel | ||||
|                     { | ||||
|                         Id = p.LawyerVideoConferenceParticipant_UID.ToString(), | ||||
|                         UID = p.LawyerVideoConferenceParticipant_UID.ToString(), | ||||
|                         DisplayName = | ||||
|                             $"{p.Participant.Firstname} {p.Participant.Lastname}".Trim() | ||||
|                                 .DefaultIfEmpty(p.Participant.Email), | ||||
| @ -125,7 +125,7 @@ namespace EnotaryoPH.Web.Pages.Participant.VideoCall | ||||
|                 participants.Add(new RoomParticipantViewModel | ||||
|                 { | ||||
|                     DisplayName = $"{host.Firstname} {host.Lastname}".Trim().DefaultIfEmpty(host.Email), | ||||
|                     Id = Guid.Empty.ToString(), | ||||
|                     UID = Guid.Empty.ToString(), | ||||
|                     RoomUserID = _Transaction.Schedule.MeetingRoomUserID, | ||||
|                     Type = nameof(UserType.Notary) | ||||
|                 }); | ||||
| @ -137,5 +137,49 @@ namespace EnotaryoPH.Web.Pages.Participant.VideoCall | ||||
|         [BindProperty(SupportsGet = true)] public string ServerCallID { get; set; } | ||||
| 
 | ||||
|         [BindProperty(SupportsGet = true)] public Guid Transaction_UID { get; set; } | ||||
| 
 | ||||
|         public IActionResult OnGetSelfieImage(string meetingRoomUserID) | ||||
|         { | ||||
|             var participant = _dbContext.LawyerVideoConferenceParticipants | ||||
|                 .AsNoTracking() | ||||
|                 .FirstOrDefault(participant => participant.MeetingRoomUserID == meetingRoomUserID); | ||||
|             if (participant == null) | ||||
|             { | ||||
|                 return NotFound(); | ||||
|             } | ||||
|             var transactionSelfie = _dbContext.TransactionSelfies.FirstOrDefault(selfie => selfie.UserID == participant.ParticipantID && selfie.Transaction.Transaction_UID == Transaction_UID); | ||||
|             if (transactionSelfie == null) | ||||
|             { | ||||
|                 return NotFound(); | ||||
|             } | ||||
| 
 | ||||
|             return new FileContentResult(transactionSelfie.File, "image/jpeg"); | ||||
|         } | ||||
| 
 | ||||
|         public IActionResult OnGetIdentificationDocument(string meetingRoomUserID) | ||||
|         { | ||||
|             var participant = _dbContext.LawyerVideoConferenceParticipants | ||||
|                 .AsNoTracking() | ||||
|                 .FirstOrDefault(participant => participant.MeetingRoomUserID == meetingRoomUserID); | ||||
|             if (participant == null) | ||||
|             { | ||||
|                 return NotFound(); | ||||
|             } | ||||
|             var identificationDocumentID = _dbContext.TransactionSelfies.AsNoTracking() | ||||
|                 .Where(selfie => selfie.UserID == participant.ParticipantID && selfie.Transaction.Transaction_UID == Transaction_UID) | ||||
|                 .Select(selfie => selfie.IdentificationDocumentID).FirstOrDefault(); | ||||
|             if (identificationDocumentID == 0) | ||||
|             { | ||||
|                 return NotFound(); | ||||
|             } | ||||
| 
 | ||||
|             var identificationDocument = _dbContext.IdentificationDocuments.FirstOrDefault(id => id.IdentificationDocumentID == identificationDocumentID); | ||||
|             if (identificationDocument == null) | ||||
|             { | ||||
|                 return NotFound(); | ||||
|             } | ||||
| 
 | ||||
|             return new FileContentResult(identificationDocument.File, "image/jpeg"); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @ -18,6 +18,8 @@ | ||||
|     control_serverCallIID = document.getElementById("ServerCallID"), | ||||
|     control_participantType = document.getElementById("ParticipantType"), | ||||
|     control_participantListGroup = document.getElementById("ParticipantListGroup"), | ||||
|     control_selfieImage = document.getElementById("SelfieImage"), | ||||
|     control_identificationImage = document.getElementById("IdentificationImage"), | ||||
|     x = 1; | ||||
| 
 | ||||
|   let participants = JSON.parse(control_participants.value); | ||||
| @ -236,6 +238,7 @@ | ||||
|       const initials = participant.DisplayName.split(' ').map(n => n.charAt(0)).join(''); | ||||
|       let tmpl = control_templateParticipantItem.cloneNode(true).content; | ||||
|       tmpl.querySelector('.participant-item').dataset.participantUid = participant.RoomUserID; | ||||
|       tmpl.querySelector('.participant-item').dataset.participantUid = participant.UID; | ||||
|       tmpl.querySelector('.participant-avatar').textContent = initials; | ||||
|       tmpl.querySelector('.participant-name').textContent = participant.DisplayName; | ||||
|       control_participantListGroup.appendChild(tmpl); | ||||
| @ -247,8 +250,23 @@ | ||||
|       let target = event.target?.closest('.list-group-item'); | ||||
|       if (target) { | ||||
| 
 | ||||
|         const participant = participants.find(p => p.UID == target.dataset.participantUid); | ||||
|         if (!participant) { | ||||
|           return; | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         let selfieUrl = jfa.utilities.routing.getCurrentURLWithHandler("SelfieImage"); | ||||
|         selfieUrl.searchParams.append("meetingRoomUserID", participant.RoomUserID); | ||||
| 
 | ||||
| 
 | ||||
|         let identificationUrl = jfa.utilities.routing.getCurrentURLWithHandler("IdentificationDocument"); | ||||
|         identificationUrl.searchParams.append("meetingRoomUserID", participant.RoomUserID); | ||||
|         control_selfieImage.src = selfieUrl; | ||||
| 
 | ||||
|         const sidebarModal = bootstrap.Modal.getOrCreateInstance(control_rightSidebarModal); | ||||
|         sidebarModal.hide(); | ||||
|         control_identificationImage.src = identificationUrl; | ||||
| 
 | ||||
|         const draggableModal = bootstrap.Modal.getOrCreateInstance(control_draggableModal); | ||||
|         draggableModal.show(); | ||||
| @ -283,7 +301,6 @@ | ||||
|     }); | ||||
|   } | ||||
| 
 | ||||
| 
 | ||||
|   async function _init() { | ||||
|     _bindEvents(); | ||||
|     //_updateGrid();
 | ||||
|  | ||||
| @ -3,7 +3,7 @@ | ||||
|     public class RoomParticipantViewModel | ||||
|     { | ||||
|         public string DisplayName { get; set; } | ||||
|         public string Id { get; set; } | ||||
|         public string UID { get; set; } | ||||
|         public string RoomUserID { get; set; } | ||||
|         public string Type { get; set; } | ||||
|     } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user