Files
continuousimprovement/src/Strata.ContinuousImprovement.Api/SnowflakeControllers/UtilizationVariationController.cs
T

56 lines
2.1 KiB
C#

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<ActionResult<IEnumerable<AllChargeInfo>>> 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<ActionResult<IEnumerable<ChargeInfo>>> 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));
}
}
}