public async Task <PagedResult <ElectionDTO> > GetElectionsListAsync(ElectionSearch model) { PagedResult <ElectionDTO> result = new PagedResult <ElectionDTO>(); model.Name = model.Name ?? ""; model.Address = model.Address ?? ""; var elections = await _commonDbContext.Elections .Where(e => e.Name.Contains(model.Name) && e.Address.Contains(model.Address)) .OrderByDescending(e => e.InsertDate) .ProjectTo <ElectionDTO>(_mapper.ConfigurationProvider) .ToListAsync(); result.TotalCount = elections.Count(); result.Items = elections; return(result); }
public async Task <PagedResult <ElectionDTO> > GetElectionsAsync(ElectionSearch model) { PagedResult <ElectionDTO> result = new PagedResult <ElectionDTO>(); model.Name = model.Name ?? ""; model.Address = model.Address ?? ""; var elections = await _commonDbContext.Elections .Where(e => e.Name.Contains(model.Name) && e.Address.Contains(model.Address)) .OrderByDescending(e => e.InsertDate) .ProjectTo <ElectionDTO>(_mapper.ConfigurationProvider) .ToListAsync(); var _candidates = elections.SelectMany(e => e.Candidates); var candidates = await _commonDbContext.Users .Where(u => _candidates.Select(c => c.CandidateAddress).Contains(u.PublicKey)) .ToListAsync(); //var candidates = await _commonDbContext.Users // .Where(u => // elections.SelectMany(e => e.Candidates).Select(c => c.CandidateAddress).Contains(u.PublicKey)) // .ToListAsync(); result.TotalCount = elections.Count(); result.Items = elections; foreach (var candidate in result.Items.SelectMany(i => i.Candidates)) { candidate.CandidateName = candidates.Any(c => c.PublicKey == candidate.CandidateAddress) ? candidates.Single(c => c.PublicKey == candidate.CandidateAddress).Name : ""; } return(result); }
public async Task <IActionResult> GetElectionList([FromQuery] ElectionSearch model) { PagedResult <ElectionDTO> elections = await _electionService.GetElectionsListAsync(model); return(Ok(elections)); }