using Application.Features.DashboardManager.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 DashboardController : BaseApiController { public DashboardController(ISender sender) : base(sender) { } [Authorize] [HttpGet("GetCRMDashboard")] public async Task>> GetCRMDashboardAsync( CancellationToken cancellationToken ) { var request = new GetCRMDashboardRequest { }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetCRMDashboardAsync)}", Content = response }); } [Authorize] [HttpGet("GetLeadPipelineFunnel")] public async Task>> GetLeadPipelineFunnelAsync( CancellationToken cancellationToken ) { var request = new GetLeadPipelineFunnelRequest { }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetLeadPipelineFunnelAsync)}", Content = response }); } [Authorize] [HttpGet("GetSalesTeamLeadClosing")] public async Task>> GetSalesTeamLeadClosingAsync( CancellationToken cancellationToken ) { var request = new GetSalesTeamLeadClosingRequest { }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetSalesTeamLeadClosingAsync)}", Content = response }); } [Authorize] [HttpGet("GetCampaignByStatus")] public async Task>> GetCampaignByStatusAsync( CancellationToken cancellationToken ) { var request = new GetCampaignByStatusRequest { }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetCampaignByStatusAsync)}", Content = response }); } [Authorize] [HttpGet("GetLeadActivityByType")] public async Task>> GetLeadActivityByTypeAsync( CancellationToken cancellationToken ) { var request = new GetLeadActivityByTypeRequest { }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetLeadActivityByTypeAsync)}", Content = response }); } [Authorize] [HttpGet("GetCardsDashboard")] public async Task>> GetCardsDashboardAsync( CancellationToken cancellationToken ) { var request = new GetCardsDashboardRequest { }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetCardsDashboardAsync)}", Content = response }); } [Authorize] [HttpGet("GetSalesDashboard")] public async Task>> GetSalesDashboardAsync( CancellationToken cancellationToken ) { var request = new GetSalesDashboardRequest { }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetSalesDashboardAsync)}", Content = response }); } [Authorize] [HttpGet("GetPurchaseDashboard")] public async Task>> GetPurchaseDashboardAsync( CancellationToken cancellationToken ) { var request = new GetPurchaseDashboardRequest { }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetPurchaseDashboardAsync)}", Content = response }); } }