public async Task <PagedResultDto <GetTeamMemberForViewDto> > GetAll(GetAllTeamMembersInput input) { var filteredTeamMembers = _teamMemberRepository.GetAll() .Include(e => e.TeamFk) .Include(e => e.UserFk) .Include(e => e.SysRefFk) .Include(e => e.SysStatusFk) .WhereIf(!string.IsNullOrWhiteSpace(input.Filter), e => false || e.Remark.Contains(input.Filter)) .WhereIf(!string.IsNullOrWhiteSpace(input.RemarkFilter), e => e.Remark == input.RemarkFilter) .WhereIf(input.MinReportingTeamMemberIdFilter != null, e => e.ReportingTeamMemberId >= input.MinReportingTeamMemberIdFilter) .WhereIf(input.MaxReportingTeamMemberIdFilter != null, e => e.ReportingTeamMemberId <= input.MaxReportingTeamMemberIdFilter) .WhereIf(!string.IsNullOrWhiteSpace(input.TeamNameFilter), e => e.TeamFk != null && e.TeamFk.Name == input.TeamNameFilter) .WhereIf(!string.IsNullOrWhiteSpace(input.UserNameFilter), e => e.UserFk != null && e.UserFk.Name == input.UserNameFilter) // .WhereIf(!string.IsNullOrWhiteSpace(input.SysRefTenantIdFilter), e => e.SysRefFk != null && e.SysRefFk.TenantId == input.SysRefTenantIdFilter) .WhereIf(!string.IsNullOrWhiteSpace(input.SysStatusNameFilter), e => e.SysStatusFk != null && e.SysStatusFk.Name == input.SysStatusNameFilter); var pagedAndFilteredTeamMembers = filteredTeamMembers .OrderBy(input.Sorting ?? "id asc") .PageBy(input); var teamMembers = from o in pagedAndFilteredTeamMembers join o1 in _lookup_teamRepository.GetAll() on o.TeamId equals o1.Id into j1 from s1 in j1.DefaultIfEmpty() join o2 in _lookup_userRepository.GetAll() on o.UserId equals o2.Id into j2 from s2 in j2.DefaultIfEmpty() join o3 in _lookup_sysRefRepository.GetAll() on o.SysRefId equals o3.Id into j3 from s3 in j3.DefaultIfEmpty() join o4 in _lookup_sysStatusRepository.GetAll() on o.SysStatusId equals o4.Id into j4 from s4 in j4.DefaultIfEmpty() select new GetTeamMemberForViewDto() { TeamMember = new TeamMemberDto { Remark = o.Remark, ReportingTeamMemberId = o.ReportingTeamMemberId, Id = o.Id }, TeamName = s1 == null ? "" : s1.Name.ToString(), UserName = s2 == null ? "" : s2.Name.ToString(), SysRefTenantId = s3 == null ? "" : s3.TenantId.ToString(), SysStatusName = s4 == null ? "" : s4.Name.ToString() }; var totalCount = await filteredTeamMembers.CountAsync(); return(new PagedResultDto <GetTeamMemberForViewDto>( totalCount, await teamMembers.ToListAsync() )); }
public async Task <PagedResultDto <GetTeamMemberForViewDto> > GetTeamMembers(GetAllTeamMembersInput input) { var filteredTeamMembers = _teamMemberRepository.GetAll() .Include(e => e.TeamFk) .Include(e => e.UserFk) .Include(e => e.SysRefFk) .Include(e => e.SysStatusFk) .WhereIf(!string.IsNullOrWhiteSpace(input.Filter), e => false || e.Remark.Contains(input.Filter)) .WhereIf(!string.IsNullOrWhiteSpace(input.RemarkFilter), e => e.Remark == input.RemarkFilter) .WhereIf(!string.IsNullOrWhiteSpace(input.TeamNameFilter), e => e.TeamFk != null && e.TeamFk.Name == input.TeamNameFilter) .WhereIf(!string.IsNullOrWhiteSpace(input.UserNameFilter), e => e.UserFk != null && e.UserFk.Name == input.UserNameFilter) .WhereIf(input.ReportingTeamMemberIdFilter != null, e => e.ReportingTeamMemberId == input.ReportingTeamMemberIdFilter) .WhereIf(input.TeamIdFilter != null, e => e.TeamFk.Id == input.TeamIdFilter) .WhereIf(!string.IsNullOrWhiteSpace(input.SysStatusNameFilter), e => e.SysStatusFk != null && e.SysStatusFk.Name == input.SysStatusNameFilter); var pagedAndFilteredTeamMembers = filteredTeamMembers .OrderBy(input.Sorting ?? "id asc") .PageBy(input); var teamMembers = from o in pagedAndFilteredTeamMembers join o1 in _lookup_teamRepository.GetAll() on o.TeamId equals o1.Id into j1 from s1 in j1.DefaultIfEmpty() join o2 in _lookup_userRepository.GetAll() on o.UserId equals o2.Id into j2 from s2 in j2.DefaultIfEmpty() join o3 in _lookup_sysRefRepository.GetAll() on o.SysRefId equals o3.Id into j3 from s3 in j3.DefaultIfEmpty() join o4 in _lookup_sysStatusRepository.GetAll() on o.SysStatusId equals o4.Id into j4 from s4 in j4.DefaultIfEmpty() orderby o.SysRefFk.OrderNumber select new GetTeamMemberForViewDto() { TeamMember = new TeamMemberDto { Remark = o.Remark, ReportingTeamMemberId = o.ReportingTeamMemberId, Id = o.Id }, TeamName = s1 == null ? "" : s1.Name.ToString(), UserName = s2 == null ? "" : s2.Name.ToString(), SysRefTenantId = s3 == null ? "" : s3.TenantId.ToString(), SysStatusName = s4 == null ? "" : s4.Name.ToString(), FullName = s2 == null ? "" : s2.FullName.ToString(), EmailAddress = s2 == null ? "" : s2.EmailAddress.ToString(), SelectedRoleName = s3 == null ? "" : s3.RefCode.ToString(), ProfilePictureId = s2 == null ? Guid.Empty : s2.ProfilePictureId, ProfilePicture = "" }; var teamMemberListDtos = await teamMembers.ToListAsync(); foreach (var teamMember in teamMemberListDtos) { Guid profilePictureId = teamMember.ProfilePictureId.Value; teamMember.ProfilePicture = await _profileAppService.GetProfilePictureByIdString(profilePictureId); } var totalCount = await filteredTeamMembers.CountAsync(); return(new PagedResultDto <GetTeamMemberForViewDto>( totalCount, teamMemberListDtos )); }