示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }