コード例 #1
0
        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));
            }
        }