using Application.Features.TransferInManager.Commands; using Application.Features.TransferInManager.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 TransferInController : BaseApiController { public TransferInController(ISender sender) : base(sender) { } [Authorize] [HttpPost("CreateTransferIn")] public async Task>> CreateTransferInAsync(CreateTransferInRequest request, CancellationToken cancellationToken) { var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(CreateTransferInAsync)}", Content = response }); } [Authorize] [HttpPost("UpdateTransferIn")] public async Task>> UpdateTransferInAsync(UpdateTransferInRequest request, CancellationToken cancellationToken) { var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(UpdateTransferInAsync)}", Content = response }); } [Authorize] [HttpPost("DeleteTransferIn")] public async Task>> DeleteTransferInAsync(DeleteTransferInRequest request, CancellationToken cancellationToken) { var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(DeleteTransferInAsync)}", Content = response }); } [Authorize] [HttpGet("GetTransferInList")] public async Task>> GetTransferInListAsync( CancellationToken cancellationToken, [FromQuery] bool isDeleted = false ) { var request = new GetTransferInListRequest { IsDeleted = isDeleted }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetTransferInListAsync)}", Content = response }); } [Authorize] [HttpGet("GetTransferInStatusList")] public async Task>> GetTransferInStatusListAsync( CancellationToken cancellationToken ) { var request = new GetTransferInStatusListRequest { }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetTransferInStatusListAsync)}", Content = response }); } [Authorize] [HttpGet("GetTransferInSingle")] public async Task>> GetTransferInSingleAsync( CancellationToken cancellationToken, [FromQuery] string id ) { var request = new GetTransferInSingleRequest { Id = id }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetTransferInSingleAsync)}", Content = response }); } }