using Application.Features.TransferOutManager.Commands; using Application.Features.TransferOutManager.Queries; using ASPNET.BackEnd.Common.Base; using ASPNET.BackEnd.Common.Models; using MediatR; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace ASPNET.BackEnd.Controllers; [Route("api/[controller]")] public class TransferOutController : BaseApiController { public TransferOutController(ISender sender) : base(sender) { } [Authorize] [HttpPost("CreateTransferOut")] public async Task>> CreateTransferOutAsync(CreateTransferOutRequest request, CancellationToken cancellationToken) { var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(CreateTransferOutAsync)}", Content = response }); } [Authorize] [HttpPost("UpdateTransferOut")] public async Task>> UpdateTransferOutAsync(UpdateTransferOutRequest request, CancellationToken cancellationToken) { var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(UpdateTransferOutAsync)}", Content = response }); } [Authorize] [HttpPost("DeleteTransferOut")] public async Task>> DeleteTransferOutAsync(DeleteTransferOutRequest request, CancellationToken cancellationToken) { var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(DeleteTransferOutAsync)}", Content = response }); } [Authorize] [HttpGet("GetTransferOutList")] public async Task>> GetTransferOutListAsync( CancellationToken cancellationToken, [FromQuery] bool isDeleted = false ) { var request = new GetTransferOutListRequest { IsDeleted = isDeleted }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetTransferOutListAsync)}", Content = response }); } [Authorize] [HttpGet("GetTransferOutStatusList")] public async Task>> GetTransferOutStatusListAsync( CancellationToken cancellationToken ) { var request = new GetTransferOutStatusListRequest { }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetTransferOutStatusListAsync)}", Content = response }); } [Authorize] [HttpGet("GetTransferOutSingle")] public async Task>> GetTransferOutSingleAsync( CancellationToken cancellationToken, [FromQuery] string id ) { var request = new GetTransferOutSingleRequest { Id = id }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetTransferOutSingleAsync)}", Content = response }); } }