public async Task <ActionResult <GrantListDTO> > GetCountedGrants() { var grantList = await _context.Grant.ToListAsync(); var result = new GrantListDTO() { TotalAmount = (from grant in grantList select grant.Amount).Sum(), TotalGrants = grantList.Count(), }; return(result); }
public async Task <ActionResult <GrantListDTO> > GetSearchedGrants([FromBody] SearchCriteria sc) { var grantList = await _context.Grant.OrderByDescending(q => q.StartDate).Include(g => g.Organization).Where(grant => grant.Organization.Name.Contains(sc.Keyword)).ToListAsync(); var result = new GrantListDTO() { TotalAmount = (from grant in grantList select grant.Amount).Sum(), TotalGrants = grantList.Count(), Grants = grantList }; return(result); }
public async Task <ActionResult <GrantListDTO> > FilterGrant([FromBody] FilterCriteria fc) { var grantList = await _context.Grant.OrderByDescending(q => q.StartDate).Include(g => g.Organization).ToListAsync(); if (!string.IsNullOrEmpty(fc.Year)) { if (fc.Year == "<- 1999") { int year = 1999; grantList = grantList.Where(grant => grant.StartDate.Year <= year).ToList(); } else { int year = Int32.Parse(fc.Year); grantList = grantList.Where(grant => grant.StartDate.Year == year).ToList(); } } if (fc.RegionId > 0) { grantList = (from grant in grantList join grantregion in _context.GrantRegion on grant.Id equals grantregion.GrantId where grantregion.RegionId == fc.RegionId select grant).ToList(); } if (fc.TopicId > 0) { grantList = (from grant in grantList join granttopic in _context.GrantTopic on grant.Id equals granttopic.GrantId join topic in _context.Topic on granttopic.TopicId equals topic.Id where topic.TopicGroupId == fc.TopicId select grant).ToList(); } var result = new GrantListDTO() { TotalAmount = (from grant in grantList select grant.Amount).Sum(), TotalGrants = grantList.Count(), Grants = grantList }; return(result); }