Esempio n. 1
0
        /// <summary>
        /// Logic for your function goes here.
        /// </summary>
        /// <param name="context">The HTTP context, containing the request and the response.</param>
        /// <returns>A task representing the asynchronous operation.</returns>
        public async Task HandleAsync(HttpContext context)
        {
            var query       = context.Request.Query;
            var reduce      = GetQueryStringParameterOrDefault <bool>(query, "reduce");      // Action to execute
            var filename    = GetQueryStringParameterOrDefault <string>(query, "filename");  // Target tracks zip filename
            var factor      = GetQueryStringParameterOrDefault <float?>(query, "factor");    // Reduction factor
            var keepBacklog = GetQueryStringParameterOrDefault <bool>(query, "keepBacklog"); // True if backlog should not be deleted once processed

            // --- Reduce existing tracks file
            if (reduce)
            {
                await _aggregagorService.ReduceCumulativeTracksZipFile(filename, factor);
            }
            // --- Aggregate backlog files into yearly tracks file
            else
            {
                await _aggregagorService.Run(factor, keepBacklog);
            }

            await context.Response.WriteAsync("[AggregatorService] Done !");
        }