public IActionResult PutEvent([FromRoute] int eventId, [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!");
         }
         if (user.OrganizationId != null && _persistence.GetEventOrgId(eventId) != user.OrganizationId)
         {
             throw new ForbiddenException("The requested Event is owned by a different organization!");
         }
         @event.Id = eventId;
         _persistence.UpdateEvent(@event);
         if (@event.Equipments == null)
         {
             return(StatusCode(200));
         }
         _persistence.DeleteAllEquipmentEventConnection(eventId);
         string error = "";
         foreach (Equipment eq in @event.Equipments)
         {
             try
             {
                 if (eq.Id != null)
                 {
                     _persistence.AddEquipmentEventConnection((int)eq.Id, eventId);
                 }
             }
             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));
     }
 }