From d3b7270dcd449152497e2d5137815768a3467698 Mon Sep 17 00:00:00 2001 From: AlanMoonbase Date: Fri, 14 Mar 2025 16:20:13 -0700 Subject: [PATCH] add stats endpoint --- src/Controllers/Common/AnalyticsController.cs | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/Controllers/Common/AnalyticsController.cs b/src/Controllers/Common/AnalyticsController.cs index 7692f68..ae11475 100644 --- a/src/Controllers/Common/AnalyticsController.cs +++ b/src/Controllers/Common/AnalyticsController.cs @@ -1,9 +1,31 @@ using Microsoft.AspNetCore.Mvc; +using sodoff.Model; namespace sodoff.Controllers.Common { public class AnalyticsController : Controller { + private readonly DBContext ctx; + public AnalyticsController(DBContext ctx) + { + this.ctx = ctx; + } + + [HttpGet] + [Route("AnalyticsWebService.asmx/GetUserAndVikingCount")] + public IActionResult GetUserAndVikingCount([FromForm] bool vikingsOnly) + { + if (vikingsOnly) return Ok(new UserStatistics + { + VikingCount = ctx.Vikings.Count(e => e.Id > 0) + }); + else return Ok(new UserStatistics + { + VikingCount = ctx.Vikings.Count(), + UserCount = ctx.Users.Count(), + }); + } + [HttpPost] [Produces("application/xml")] [Route("AnalyticsWebService.asmx/LogEvent")] @@ -20,4 +42,10 @@ namespace sodoff.Controllers.Common return Ok(); } } + + public class UserStatistics + { + public int VikingCount { get; set; } + public int? UserCount { get; set; } + } }