Add DashboardController with Stats endpoint

- Returns total, open, notDispatched, completed work order counts
This commit is contained in:
Adam Moussa 2026-04-16 19:25:42 -04:00
parent 8959efc06b
commit 78c7850fb2

View file

@ -0,0 +1,39 @@
using Data.SeaHavenIndustries;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
namespace Api.SeaHavenIndustries.Controllers
{
[Authorize]
[ApiController]
[Route("api/[controller]")]
public class DashboardController : Controller
{
private readonly ApplicationDbContext _db;
public DashboardController(ApplicationDbContext db)
{
_db = db;
}
[HttpGet("Stats")]
public async Task<IActionResult> GetStats()
{
var query = _db.workOrders.Where(w => w.istemplate != true);
var total = await query.CountAsync();
var open = await query.CountAsync(w => w.Status == "Open" || w.Status == "In Progress" || w.Status == "On Hold");
var notDispatched = await query.CountAsync(w => (w.Status == "Open") && (w.AssignTo == null || w.AssignTo == ""));
var completed = await query.CountAsync(w => w.Status == "Done");
return Ok(new
{
total,
open,
notDispatched,
completed
});
}
}
}