102 lines
2.9 KiB
C#
102 lines
2.9 KiB
C#
using line_gestao_api.Data;
|
|
using line_gestao_api.Dtos;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace line_gestao_api.Controllers;
|
|
|
|
[ApiController]
|
|
[Route("api/consistency")]
|
|
[Authorize(Roles = "admin")]
|
|
public class ConsistencyController : ControllerBase
|
|
{
|
|
private readonly AppDbContext _db;
|
|
|
|
public ConsistencyController(AppDbContext db)
|
|
{
|
|
_db = db;
|
|
}
|
|
|
|
[HttpGet("gaps")]
|
|
public async Task<ActionResult<ConsistencyReportDto>> GetGaps()
|
|
{
|
|
var totalLinhas = await _db.MobileLines.AsNoTracking().CountAsync();
|
|
var totalClientes = await _db.MobileLines.AsNoTracking()
|
|
.Where(x => x.Cliente != null && x.Cliente != "")
|
|
.Select(x => x.Cliente!)
|
|
.Distinct()
|
|
.CountAsync();
|
|
|
|
var muregLinhas = await _db.MuregLines.AsNoTracking()
|
|
.Select(x => x.MobileLineId)
|
|
.Distinct()
|
|
.CountAsync();
|
|
|
|
var trocaLinhas = await _db.TrocaNumeroLines.AsNoTracking()
|
|
.Select(x => x.Item)
|
|
.Distinct()
|
|
.CountAsync();
|
|
|
|
var userDataLinhas = await _db.UserDatas.AsNoTracking()
|
|
.Select(x => x.Item)
|
|
.Distinct()
|
|
.CountAsync();
|
|
|
|
var vigenciaLinhas = await _db.VigenciaLines.AsNoTracking()
|
|
.Select(x => x.Item)
|
|
.Distinct()
|
|
.CountAsync();
|
|
|
|
var billingClientes = await _db.BillingClients.AsNoTracking()
|
|
.Where(x => x.Cliente != null && x.Cliente != "")
|
|
.Select(x => x.Cliente)
|
|
.Distinct()
|
|
.CountAsync();
|
|
|
|
var report = new ConsistencyReportDto
|
|
{
|
|
TotalLinhasGeral = totalLinhas,
|
|
TotalClientesGeral = totalClientes,
|
|
LinhasPorAba = new List<ConsistencyGapDto>
|
|
{
|
|
new()
|
|
{
|
|
Nome = "Mureg",
|
|
TotalGeral = totalLinhas,
|
|
TotalAtual = muregLinhas
|
|
},
|
|
new()
|
|
{
|
|
Nome = "TrocaNumero",
|
|
TotalGeral = totalLinhas,
|
|
TotalAtual = trocaLinhas
|
|
},
|
|
new()
|
|
{
|
|
Nome = "UserData",
|
|
TotalGeral = totalLinhas,
|
|
TotalAtual = userDataLinhas
|
|
},
|
|
new()
|
|
{
|
|
Nome = "Vigencia",
|
|
TotalGeral = totalLinhas,
|
|
TotalAtual = vigenciaLinhas
|
|
}
|
|
},
|
|
ClientesPorAba = new List<ConsistencyGapDto>
|
|
{
|
|
new()
|
|
{
|
|
Nome = "Faturamento",
|
|
TotalGeral = totalClientes,
|
|
TotalAtual = billingClientes
|
|
}
|
|
}
|
|
};
|
|
|
|
return Ok(report);
|
|
}
|
|
}
|