Пример #1
0
 public IActionResult PostEquipment([FromBody] Equipment equipment)
 {
     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 eqId = _persistence.AddEquipment(equipment, (int)user.OrganizationId);
         if (equipment.Events == null)
         {
             return(StatusCode(200));
         }
         string error = "";
         foreach (Event ev in equipment.Events)
         {
             try
             {
                 if (ev.Id != null)
                 {
                     _persistence.AddEquipmentEventConnection(eqId, (int)ev.Id);
                 }
             }
             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));
     }
 }