public async Task <IEnumerable <LatestAccessRecordDto> > HandleAsync(GetLatestSiteAccessRecords query) { IEnumerable <IUserStatusDocument> states = await _statusRepository.GetForSiteAsync(query.SiteId); var records = new List <LatestAccessRecordDto>(); foreach (var state in states) { var user = await _userRepository.GetAsync(state.UserId); if (user is null) { _logger.LogWarning($"User not found to match with current state id is: {state.UserId}"); } records.Add(new LatestAccessRecordDto { Action = state.CurrentState == AccessAction.In ? "in" : "out", Id = state.Id, TimeStamp = state.Updated, UserId = state.UserId, FullName = user?.FirstName + " " + user?.SecondName, Email = user?.Email, ContactNumber = user?.PhoneNumber, Initials = $"{user?.FirstName[0]}{user?.SecondName[0]}", Code = user?.Code.ToString() }); } return(records); }