sort waiting participants by SortOrder
This commit is contained in:
		
							parent
							
								
									10be070fae
								
							
						
					
					
						commit
						7d82832e42
					
				| @ -9,57 +9,65 @@ namespace EnotaryoPH.Web.Pages.Participant.VideoCall | ||||
|     { | ||||
|         private readonly NotaryoDBContext _dbContext; | ||||
|         private readonly ICurrentUserService _currentUserService; | ||||
|         private readonly IConferenceSheduleService _conferenceSheduleService; | ||||
|         private Transaction _transactionEntity; | ||||
| 
 | ||||
|         public WaitingModel(NotaryoDBContext notaryoDBContext, ICurrentUserService currentUserService) | ||||
|         public WaitingModel(NotaryoDBContext notaryoDBContext, ICurrentUserService currentUserService, IConferenceSheduleService conferenceSheduleService) | ||||
|         { | ||||
|             _dbContext = notaryoDBContext; | ||||
|             _currentUserService = currentUserService; | ||||
|             _conferenceSheduleService = conferenceSheduleService; | ||||
|         } | ||||
| 
 | ||||
|         public IActionResult OnGet() | ||||
|         public async Task<IActionResult> OnGetAsync() | ||||
|         { | ||||
|             _transactionEntity = _dbContext.Transactions | ||||
|                 .Include(t => t.TransactionSignatories) | ||||
|                 .ThenInclude(ts => ts.User) | ||||
|                 .Include(t => t.Lawyer) | ||||
|                 .ThenInclude(l => l.User) | ||||
|                 .Include(t => t.Principal) | ||||
|                 .FirstOrDefault(t => t.Transaction_UID == Transaction_UID); | ||||
|             if (_transactionEntity == null) | ||||
|             if (_transactionEntity == null || _transactionEntity.Status.IsInList(TransactionState.Completed)) | ||||
|             { | ||||
|                 return NotFound(); | ||||
|             } | ||||
| 
 | ||||
|             var schedule_UID = await _conferenceSheduleService.GetOrCreateScheduleIDAsync(Transaction_UID); | ||||
|             if (schedule_UID != Guid.Empty) | ||||
|             { | ||||
|                 return Redirect($"/Participant/VideoCall/Room/{Transaction_UID}"); | ||||
|             } | ||||
| 
 | ||||
|             var participants = _transactionEntity.TransactionSignatories | ||||
|                 .Select(t => new WaitingForParticipantViewModel | ||||
|                 .ConvertAll(t => new WaitingForParticipantViewModel | ||||
|                 { | ||||
|                     Email = t.Email, | ||||
|                     Status = ConvertToWaitingStatus(t.Status), | ||||
|                     Type = t.Email == _currentUserService.GetEmail() ? "(You)" : t.Type, | ||||
|                     UID = t.TransactionSignatory_UID.GetValueOrDefault() | ||||
|                 }) | ||||
|                 .ToList(); | ||||
| 
 | ||||
|             if (_transactionEntity.LawyerID > 0) | ||||
|             { | ||||
|                 participants.Add(new WaitingForParticipantViewModel | ||||
|                 { | ||||
|                     Email = _transactionEntity.Lawyer.User.Email, | ||||
|                     Status = "Waiting", | ||||
|                     Type = nameof(UserType.Notary), | ||||
|                     UID = Guid.Empty | ||||
|                     Type = string.Equals(t.Email, _currentUserService.GetEmail(), StringComparison.OrdinalIgnoreCase) ? "(You)" : t.Type, | ||||
|                     UID = t.TransactionSignatory_UID.GetValueOrDefault(), | ||||
|                     SortOrder = 3 | ||||
|                 }); | ||||
|             } | ||||
| 
 | ||||
|             participants.Add(new WaitingForParticipantViewModel | ||||
|             { | ||||
|                 Email = _transactionEntity.Lawyer?.User?.Email ?? "notarypublic@enotaryo.ph", | ||||
|                 Status = "Waiting", | ||||
|                 Type = nameof(UserType.Notary), | ||||
|                 UID = _transactionEntity.Lawyer?.User?.User_UID ?? Guid.Empty, | ||||
|                 SortOrder = 1 | ||||
|             }); | ||||
| 
 | ||||
|             participants.Add(new WaitingForParticipantViewModel | ||||
|             { | ||||
|                 Email = _transactionEntity.Principal.Email, | ||||
|                 Status = "Ready", | ||||
|                 Type = nameof(UserType.Principal), | ||||
|                 UID = Guid.Empty | ||||
|                 UID = _transactionEntity.Principal?.User_UID ?? Guid.Empty, | ||||
|                 SortOrder = 2 | ||||
|             }); | ||||
| 
 | ||||
|             Participants = participants.OrderBy(p => p.Type).ToList(); | ||||
|             Participants = participants.OrderBy(p => p.SortOrder).ThenBy(p => p.Email).ToList(); | ||||
| 
 | ||||
|             return Page(); | ||||
|         } | ||||
|  | ||||
| @ -6,5 +6,6 @@ | ||||
|         public string Status { get; set; } | ||||
|         public string Type { get; set; } | ||||
|         public Guid UID { get; set; } | ||||
|         public int SortOrder { get; set; } | ||||
|     } | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user