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))); }
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))); }
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))); }
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."); } }