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