EventController getPeriod speed improvements

This commit is contained in:
quentin 2024-10-29 19:11:53 -05:00
parent e62f390942
commit eac9c784fb

View File

@ -16,7 +16,7 @@ namespace API.Controllers
public EventController(ILogger<EventController> logger, UserService userService, EventService service) : base(logger, userService, service)
{
}
//todo slow
[HttpGet("period")]
public virtual ActionResult<List<EventDTO>> getPeriod(DateTime start, DateTime end)
@ -24,20 +24,22 @@ namespace API.Controllers
MUser? user = getUser(User);
if (user == null)
return Unauthorized();
IEnumerable<Event>? result = Service.get(user, x=> x.when >= start && x.when <= end);
IEnumerable<Event>? result = Service.get(user, x => x.when >= start && x.when <= end && x.hidden == false);
if (result == null)
return Forbid();
List<EventDTO> dtos = [];
Parallel.ForEach(result.ToList(), item =>
List<Event> temp = result.ToList();
Parallel.ForEach(temp, item =>
{
EventDTO dto = new EventDTO();
dto.adaptFromModel(item);
dtos.Add(dto);
});
return Ok(dtos);
}