Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
        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));
        }
Example #4
0
        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));
        }
Example #5
0
        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));
        }
Example #6
0
        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));
        }
Example #7
0
        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));
        }
Example #8
0
        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));
        }
Example #9
0
        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));
        }
Example #10
0
        /// <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);
        }