public async Task <IActionResult> Currencies([FromQuery] AzureMetricsQuery query) { var queryString = $@"customEvents | where {dashboardRepository.GetTimestampFilter(query.Period)} | project currency = tostring(customDimensions[""Currency""]) | where isnotempty(currency) | summarize by currency | order by currency asc"; return(await GetContent(queryString)); }
public async Task <IActionResult> UsersByOperatingSystem([FromQuery] AzureMetricsQuery query) { var queryString = $@"customEvents | where {dashboardRepository.GetTimestampFilter(query.Period)} {dashboardRepository.GetQueryFilters(query)} | project user_Id, client_OS | summarize user_count = round(dcount(user_Id) * {dashboardRepository.GetDataSummaryMultiplier()}) by client_OS | where user_count > 0 | order by user_count asc"; return(await GetContent(queryString)); }
public async Task <IActionResult> Regions([FromQuery] AzureMetricsQuery query) { var queryString = $@"customEvents | where {dashboardRepository.GetTimestampFilter(query.Period)} | project client_CountryOrRegion | where isnotempty(client_CountryOrRegion) | summarize by client_CountryOrRegion | order by client_CountryOrRegion asc"; return(await GetContent(queryString)); }
public async Task <IActionResult> Operators([FromQuery] AzureMetricsQuery query) { var queryString = $@"customEvents | where {dashboardRepository.GetTimestampFilter(query.Period)} | project operator = tostring(customDimensions[""Operator ID""]) | where isnotempty(operator) {(string.IsNullOrWhiteSpace(query.Operator) ? "" : $"and operator =~ \"{query.Operator}\"")} | summarize by operator | order by operator asc"; return(await GetContent(queryString)); }
public async Task <IActionResult> DailyUniqueUsers([FromQuery] AzureMetricsQuery query) { var queryString = $@"customEvents | where {dashboardRepository.GetTimestampFilter(query.Period)} {dashboardRepository.GetQueryFilters(query)} | project user_Id, timestamp | summarize daily_unique_users = round(dcount(user_Id) * {dashboardRepository.GetDataSummaryMultiplier()}) by bin(timestamp, {dashboardRepository.GetPeriodSummaryGrouping(query.Period)}) | where daily_unique_users > 0 | order by timestamp asc"; return(await GetContent(queryString)); }
public async Task <IActionResult> SpinsByGame([FromQuery] AzureMetricsQuery query) { var queryString = $@"customEvents | where {dashboardRepository.GetTimestampFilter(query.Period)} {dashboardRepository.GetQueryFilters(query)} | project game_id = tostring(customDimensions[""Game ID""]), spin = tostring(customDimensions[""Spin mode""]) | where isnotempty(game_id) and isnotempty(spin) | summarize spin_count = round(count(spin) * {dashboardRepository.GetDataSummaryMultiplier()}) by game_id | where spin_count > 0 | order by spin_count desc"; return(await GetContent(queryString)); }
public async Task <IActionResult> SpinsByCurrency([FromQuery] AzureMetricsQuery query) { var queryString = $@"customEvents | where {dashboardRepository.GetTimestampFilter(query.Period)} {dashboardRepository.GetQueryFilters(query)} | project currency = tostring(customDimensions[""Currency""]), spin = tostring(customDimensions[""Spin mode""]) | where isnotempty(currency) and isnotempty(spin) | evaluate pivot(spin, round(count(currency * {dashboardRepository.GetDataSummaryMultiplier()}))) | where currency > 0 | order by currency asc"; return(await GetContent(queryString)); }
public async Task <IActionResult> Spins([FromQuery] AzureMetricsQuery query) { var queryString = $@"customEvents | where {dashboardRepository.GetTimestampFilter(query.Period)} {dashboardRepository.GetQueryFilters(query)} | project spin = tostring(customDimensions[""Spin mode""]), timestamp | where isnotempty(spin) | summarize spin_count = round(count(spin) * {dashboardRepository.GetDataSummaryMultiplier()}) by bin(timestamp, { dashboardRepository.GetPeriodSummaryGrouping(query.Period) }) | where spin_count > 0 | order by timestamp asc"; return(await GetContent(queryString)); }
public async Task <IActionResult> UsersByCurrency([FromQuery] AzureMetricsQuery query) { var queryString = $@"customEvents | where {dashboardRepository.GetTimestampFilter(query.Period)} {dashboardRepository.GetQueryFilters(query)} | project user_Id, currency = tostring(customDimensions[""Currency""]) | where isnotempty(currency) | summarize user_count = round(dcount(user_Id) * {dashboardRepository.GetDataSummaryMultiplier()}) by currency | where user_count > 0 | order by user_count asc"; return(await GetContent(queryString)); }
/// <summary> /// Get query filter for azure based on the selected values. /// </summary> /// <param name="query">Query values from the front-end.</param> /// <returns>Filter string to be added to the azure query.</returns> public string GetQueryFilters(AzureMetricsQuery query) { string filter = string.Empty; if (query.Region != null && string.Compare(query.Region, "All", true, CultureInfo.InvariantCulture) != 0) { filter += $" and client_CountryOrRegion =~ \"{query.Region}\""; } if (query.Operator != null && string.Compare(query.Operator, "All", true, CultureInfo.InvariantCulture) != 0) { filter += $" and customDimensions[\"Operator ID\"] =~ \"{query.Operator}\""; } if (query.Currency != null && string.Compare(query.Currency, "All", true, CultureInfo.InvariantCulture) != 0) { filter += $" and customDimensions[\"Currency\"] =~ \"{query.Currency}\""; } return(filter); }