using API.Authentication.Interfaces; using API.DTO.Base; using API.DTO.Base.Update; using API.Services; using DAL.Models; using DAL.Models.Audits; using Microsoft.AspNetCore.Mvc; using MUser = DAL.Models.User; namespace API.Controllers { [ApiController] [Route("api/v1/[controller]")] public class EventController : CRUDBase { public EventController(ILogger logger, UserService userService, EventService service) : base(logger, userService, service) { } //todo slow [HttpGet("period")] public virtual ActionResult> getPeriod(DateTime start, DateTime end) { MUser? user = getUser(User); if (user == null) return Unauthorized(); IEnumerable? result = Service.get(user, x => x.when >= start && x.when <= end && x.hidden == false); if (result == null) return Forbid(); List dtos = []; List temp = result.ToList(); Parallel.ForEach(temp, item => { EventDTO dto = new EventDTO(); dto.adaptFromModel(item); dtos.Add(dto); }); return Ok(dtos); } [HttpGet("{eventId}/isSignedUp")] public ActionResult isSignedUp(ulong eventId) { MUser? user = getUser(User); if (user == null) return Unauthorized(); bool? isSignedUp = Service.isSignedUp(user, eventId); if (isSignedUp == null) return Forbid(); return isSignedUp; } } }