using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Strata.DecisionSupport.Biz.Parameters; using Strata.DecisionSupport.Biz.Services; using Strata.DecisionSupport.Biz.Utilities; using Strata.DecisionSupport.Models.Jazz; using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace Strata.ContinuousImprovement.Api.SnowflakeControllers { [ApiController] [ApiVersion("1.0")] [Route("api/v{api-version:apiVersion}/[controller]")] public class UtilizationVariationController : Controller { private readonly IUtilizationVariationService _utilizationVariationService; public UtilizationVariationController(IUtilizationVariationService utilizationVariationService) { _utilizationVariationService = utilizationVariationService; } [HttpPost("[action]")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status400BadRequest)] public async Task>> GetAllChargeInfoAsync( [FromBody] AllChargeQueryInfo queryInfo, CancellationToken cancellationToken) { if (queryInfo.OpportunityGuid.Equals(Guid.Empty)) return BadRequest(queryInfo); if (queryInfo.ChargeCodeIds.IsEmpty()) return BadRequest(queryInfo); return Ok(await _utilizationVariationService.RunAllChargeInfoQuery(queryInfo, cancellationToken)); } [HttpPost("[action]")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status400BadRequest)] public async Task>> GetChargeInfoAsync( [FromBody] ChargeQueryInfo queryInfo, CancellationToken cancellationToken) { if (queryInfo.ConfigurationGuid.Equals(Guid.Empty)) return BadRequest(queryInfo); if (queryInfo.ChargeCodeIds.IsEmpty()) return BadRequest(queryInfo); return Ok(await _utilizationVariationService.RunChargeInfoQuery(queryInfo, cancellationToken)); } } }