shoc-backend/Api.SeaHavenIndustries/Controllers/DashboardController.cs
Adam Moussa 78c7850fb2 Add DashboardController with Stats endpoint
- Returns total, open, notDispatched, completed work order counts
2026-04-16 19:25:42 -04:00

39 lines
1.2 KiB
C#

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
});
}
}
}