public IActionResult PostEvent([FromBody] Event @event) { try { if (HttpContext.Items["User"] == null) { throw new UnauthorizedException("Authorization failed!"); } User user = (User)HttpContext.Items["User"]; if (user.PermissionLevel < 3) { throw new ForbiddenException("You don't have high enough clearance for this operation!"); } int evId = _persistence.AddEvent(@event, (int)user.OrganizationId); if (@event.Equipments == null) { return(StatusCode(200)); } string error = ""; foreach (Equipment eq in @event.Equipments) { try { if (eq.Id != null) { _persistence.AddEquipmentEventConnection((int)eq.Id, evId); } } catch (ConflictException e) { error = e.Message + "\n"; } } if (error != "") { throw new ConflictException(error.Substring(0, error.Length - 1)); } return(StatusCode(200)); } catch (UnauthorizedException e) { return(StatusCode(401, e.Message)); } catch (ForbiddenException e) { return(StatusCode(403, e.Message)); } catch (NotFoundException e) { return(StatusCode(404, e.Message)); } catch (ConflictException e) { return(StatusCode(409, e.Message)); } catch (Exception e) { return(StatusCode(500, e.Message)); } }