using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Strata.SqlTools.EntityFramework.Pagination; using Strata.Stratasphere.Biz.Mappings.DischargeStatus; using System.Threading; using System.Threading.Tasks; namespace Strata.Stratasphere.Api.Controllers { [ApiController] [ApiVersion("1.0")] [Route("api/v{api-version:apiVersion}/[controller]")] public class DischargeStatusMappingDetailsController : ControllerBase { private readonly IDischargeStatusMappingDetailService _dischargeStatusMappingDetailService; public DischargeStatusMappingDetailsController(IDischargeStatusMappingDetailService dischargeStatusMappingDetailService) { _dischargeStatusMappingDetailService = dischargeStatusMappingDetailService; } [HttpPost()] public async Task> GetAll(DischargeStatusMappingDetailLoadOptions loadOptions, CancellationToken cancellationToken) { return await _dischargeStatusMappingDetailService.GetDischargeStatusMappingDetailsAsync(loadOptions.PagingOptions, loadOptions.FilterOptions, cancellationToken); } [HttpPost("[action]")] [ProducesResponseType(StatusCodes.Status202Accepted)] public async Task Export(DischargeStatusMappingDetailExportOptions exportOptions, CancellationToken cancellationToken) { await _dischargeStatusMappingDetailService.ExportAsync(exportOptions.ExportAll, exportOptions.FilterOptions, User?.Identity?.Name ?? "", cancellationToken); return new AcceptedResult(); } [HttpPost("[action]")] public async Task Import(IFormFile file, CancellationToken cancellationToken) { return await _dischargeStatusMappingDetailService.ImportAsync(file, User?.Identity?.Name ?? "", cancellationToken); } } public class DischargeStatusMappingDetailLoadOptions { public PagingOptions PagingOptions { get; set; } public DischargeStatusMappingFilters FilterOptions { get; set; } } public class DischargeStatusMappingDetailExportOptions { public bool ExportAll { get; set; } public DischargeStatusMappingFilters FilterOptions { get; set; } } }