using Application.Features.SalesOrderManager.Commands; using Application.Features.SalesOrderManager.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 SalesOrderController : BaseApiController { public SalesOrderController(ISender sender) : base(sender) { } [Authorize] [HttpPost("CreateSalesOrder")] public async Task>> CreateSalesOrderAsync(CreateSalesOrderRequest request, CancellationToken cancellationToken) { var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(CreateSalesOrderAsync)}", Content = response }); } [Authorize] [HttpPost("UpdateSalesOrder")] public async Task>> UpdateSalesOrderAsync(UpdateSalesOrderRequest request, CancellationToken cancellationToken) { var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(UpdateSalesOrderAsync)}", Content = response }); } [Authorize] [HttpPost("DeleteSalesOrder")] public async Task>> DeleteSalesOrderAsync(DeleteSalesOrderRequest request, CancellationToken cancellationToken) { var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(DeleteSalesOrderAsync)}", Content = response }); } [Authorize] [HttpGet("GetSalesOrderList")] public async Task>> GetSalesOrderListAsync( CancellationToken cancellationToken, [FromQuery] bool isDeleted = false ) { var request = new GetSalesOrderListRequest { IsDeleted = isDeleted }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetSalesOrderListAsync)}", Content = response }); } [Authorize] [HttpGet("GetSalesOrderStatusList")] public async Task>> GetSalesOrderStatusListAsync( CancellationToken cancellationToken ) { var request = new GetSalesOrderStatusListRequest { }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetSalesOrderStatusListAsync)}", Content = response }); } [Authorize] [HttpGet("GetSalesOrderSingle")] public async Task>> GetSalesOrderSingleAsync( CancellationToken cancellationToken, [FromQuery] string id ) { var request = new GetSalesOrderSingleRequest { Id = id }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetSalesOrderSingleAsync)}", Content = response }); } }