public IActionResult PutOrderAbort([FromBody] OrderViewModel orderVmdl) { try { var order = _bl.GetOrders(orderVmdl.OrderId); if (!order.Entleiher.Uid.Equals(_bl.GetCurrentUid()) || !order.OrderStatus.Slug.Equals("offen")) { _log.LogWarning("'{0}' failed to abort Order '{1}'", _bl.GetCurrentUid(), orderVmdl.OrderId); return(BadRequest("Der Auftrag kann nicht abgebrochen werden.")); } orderVmdl.Abort(order, _bl); _bl.SaveChanges(); _log.LogInformation("'{0}' successfully aborted Order '{1}'", _bl.GetCurrentUid(), orderVmdl.OrderId); orderVmdl.Refresh(order); return(Ok(orderVmdl)); } catch (SecurityException) { _log.LogWarning("Security: '{0}' tried to abort Order '{1}'", _bl.GetCurrentUid(), orderVmdl.OrderId); return(Unauthorized()); } catch (Exception ex) { _log.LogError("Exception: '{0}'", ex); return(StatusCode(500)); } }