public StatsResultModel GetStats() { var stats = _context.Stats.ToList(); int qtdSearch = stats.Count(); int qtdMutants = stats.Where(x => x.IsMutant == true).Count(); int qtdHumans = (qtdSearch - qtdMutants); double ratioCalc; if (qtdHumans == 0) { ratioCalc = 1; } else { ratioCalc = (double)qtdMutants / qtdHumans; } var result = new StatsResultModel() { count_human_dna = qtdHumans, count_mutant_dna = qtdMutants, ratio = Math.Round(ratioCalc, 2) }; return(result); }
public async Task <ActionResult> GetStats(string name) { // first get a named saved query. string filter = $"name eq '{name}'";//zApproved Applications (Reporting) var savedQuerySearchResults = _dynamicsClient.Savedqueries.Get(filter: filter); var savedQuery = savedQuerySearchResults.Value.FirstOrDefault(); if (savedQuery == null) { return(new NotFoundObjectResult(new { Name = name, error = $"There was no saved query with a name of {name}" })); } else { string savedQueryId = savedQuery.Savedqueryid; // now get application data. try { var results = _dynamicsClient.Applications.GetSavedQuery(savedQueryId); var result = new List <StatsResultModel>(); foreach (var item in results.Value) { var newItem = new StatsResultModel() { adoxio_applicationid = item["adoxio_applicationid"] }; string cacheKey = CacheKeys.ApplicationPrefix + newItem.adoxio_applicationid; MicrosoftDynamicsCRMadoxioApplication application = null; if (!_cache.TryGetValue(cacheKey, out application)) { application = await _dynamicsClient.GetApplicationByIdWithChildren(Guid.Parse(newItem.adoxio_applicationid)); // Set cache options. var cacheEntryOptions = new MemoryCacheEntryOptions() // Keep in cache for this time .SetAbsoluteExpiration(TimeSpan.FromHours(24)); // Save data in cache. _cache.Set(cacheKey, application, cacheEntryOptions); } if (application.AdoxioLocalgovindigenousnationid != null && application.AdoxioLocalgovindigenousnationid.AdoxioCommunicationsregion != null) { newItem.commregion = (CommRegions)application.AdoxioLocalgovindigenousnationid.AdoxioCommunicationsregion; } else { newItem.commregion = CommRegions.Unknown; } result.Add(newItem); } return(Json(result)); } catch (Exception e) { _logger.LogError($"Error reading from saved query {name}."); _logger.LogError(e.Message); _logger.LogError(e.StackTrace); return(new NotFoundObjectResult(new { Name = name, error = $"Unable to retrieve saved query with a name of {name}. Error is {e.Message}" })); } } }