using Application.Features.SalesRepresentativeManager.Commands; using Application.Features.SalesRepresentativeManager.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 SalesRepresentativeController : BaseApiController { public SalesRepresentativeController(ISender sender) : base(sender) { } [Authorize] [HttpPost("CreateSalesRepresentative")] public async Task>> CreateSalesRepresentativeAsync(CreateSalesRepresentativeRequest request, CancellationToken cancellationToken) { var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(CreateSalesRepresentativeAsync)}", Content = response }); } [Authorize] [HttpPost("UpdateSalesRepresentative")] public async Task>> UpdateSalesRepresentativeAsync(UpdateSalesRepresentativeRequest request, CancellationToken cancellationToken) { var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(UpdateSalesRepresentativeAsync)}", Content = response }); } [Authorize] [HttpPost("DeleteSalesRepresentative")] public async Task>> DeleteSalesRepresentativeAsync(DeleteSalesRepresentativeRequest request, CancellationToken cancellationToken) { var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(DeleteSalesRepresentativeAsync)}", Content = response }); } [Authorize] [HttpGet("GetSalesRepresentativeList")] public async Task>> GetSalesRepresentativeListAsync( CancellationToken cancellationToken, [FromQuery] bool isDeleted = false ) { var request = new GetSalesRepresentativeListRequest { IsDeleted = isDeleted }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetSalesRepresentativeListAsync)}", Content = response }); } [Authorize] [HttpGet("GetSalesRepresentativeSingle")] public async Task>> GetSalesRepresentativeSingleAsync( CancellationToken cancellationToken, [FromQuery] string id ) { var request = new GetSalesRepresentativeSingleRequest { Id = id }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetSalesRepresentativeSingleAsync)}", Content = response }); } [Authorize] [HttpGet("GetSalesRepresentativeBySalesTeamIdList")] public async Task>> GetSalesRepresentativeBySalesTeamIdListAsync( CancellationToken cancellationToken, [FromQuery] string id ) { var request = new GetSalesRepresentativeBySalesTeamIdListRequest { SalesTeamId = id }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetSalesRepresentativeBySalesTeamIdListAsync)}", Content = response }); } }