Пример #1
0
        public async Task <IActionResult> GetOpportunities()
        {
            List <Opportunity> opportunities = await VollyMemoryCache.GetAllOpportunities(_memoryCache, _context);

            List <OpportunityView> opportunityViews = opportunities
                                                      .Select(OpportunityView.FromOpportunity)
                                                      .Where(o => o.OccurrenceViews.Count > 0)
                                                      .ToList();

            return(Ok(Sort(opportunityViews, 1)));
        }
Пример #2
0
        public async Task <IActionResult> Search([FromBody] OpportunitySearch opportunitySearch)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            List <Opportunity> opportunities = await VollyMemoryCache.GetAllOpportunities(_memoryCache, _context);

            List <OpportunityView> opportunityViews = opportunities
                                                      .Where(GetEligibleOpportunityPredicate(opportunitySearch))
                                                      .Select(OpportunityView.FromOpportunity)
                                                      .Where(o => o.OccurrenceViews.Count > 0)
                                                      .ToList();

            return(Ok(Sort(opportunityViews, opportunitySearch.Sort)));
        }
Пример #3
0
        public async Task <IActionResult> GetOpportunity([FromRoute] int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Opportunity opportunity = (await VollyMemoryCache.GetAllOpportunities(_memoryCache, _context))
                                      .SingleOrDefault(m => m.Id == id);

            if (opportunity == null)
            {
                return(NotFound());
            }

            return(Ok(OpportunityView.FromOpportunity(opportunity)));
        }
Пример #4
0
        private async Task ProcessMessage(string message)
        {
            string             lowerMessage      = message.ToLower();
            List <Opportunity> opportunitiesList = await VollyMemoryCache.GetAllOpportunities(_memoryCache, _context);

            List <Opportunity> opportunities = opportunitiesList
                                               .Where(o => lowerMessage.Contains(o.Category.Name.ToLower()) ||
                                                      lowerMessage.Contains(o.Organization.Cause.Name.ToLower()))
                                               .ToList();

            if (opportunities.Count != 0)
            {
                await Clients.Caller.SendAsync("ReceiveMessage", Vollybot, "Here are the results:");

                await Clients.Caller.SendAsync("ListOpportunityLinks", opportunities);
            }
            else
            {
                await Clients.Caller.SendAsync("ReceiveMessage", Vollybot, "No results found, try again please.");
            }
        }