Files
2026-04-20 14:47:24 -05:00

60 lines
2.0 KiB
C#

using System;
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading.Tasks;
using LCU.API.Collections.RepoApi.Configuration;
using LCU.API.Collections.RepoApi.HostedServices;
using LCU.API.Collections.RepoApi.Services;
using LCU.Shared.Collections.RepoApiLib.Models;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.FeatureManagement.Mvc;
using Serilog;
namespace LCU.API.Collections.RepoApi.Controllers
{
[Route("api/[controller]")]
[ApiController]
[FeatureGate(FeatureFlags.EnableControllers)]
public class ProcessingReceiptController : RepoControllerBase
{
private readonly IProcessingReceiptService _receiptService;
public ProcessingReceiptController(IProcessingReceiptService receiptService,
IHttpContextAccessor httpContextAccessor):
base(httpContextAccessor)
{
_receiptService = receiptService;
}
//GET: api/ProcessingReceipt/AccountNo/5
[HttpGet("AccountNo/{accountNo}")]
[ProducesResponseType(typeof(ReadOnlyCollection<ProcessingReceipt>),200)]
[ProducesResponseType(typeof(string),400)]
[ProducesResponseType(500)]
public async Task<IActionResult> GetByAccountNo(string accountNo)
{
try
{
if (string.IsNullOrWhiteSpace((accountNo)))
{
return BadRequest("Invalid ID");
}
var results = await _receiptService.GetReceiptsByAccountNoAsync(accountNo);
if (results.Any())
{
return Ok(results);
}
return NotFound("No receipts found for for this account");
}
catch (Exception ex)
{
Log.Error(ex, $"Failure in {GetType().Name} at {GetInvokerAsyncMethodName()}");
return StatusCode(StatusCodes.Status500InternalServerError);
}
}
}
}