public IActionResult Delete(int id) { try { var entity = _service.ProductModels.Id(id).FirstOrDefault(); if (entity == null) { return(NotFound(AppResult.NotFound())); } var validationData = _service.ValidateDeleteProductModel(User, entity); if (!validationData.IsValid) { return(BadRequest(AppResult.FailValidation(data: validationData))); } _service.DeleteProductModel(entity); _service.DeleteProductModelFolder(entity, Settings.Instance.UploadFolderPath, Settings.Instance.WebRootPath); context.SaveChanges(); // must be in transaction var ev = _ev_service.DeleteProductModel(entity, User); context.SaveChanges(); return(NoContent()); } catch (DbUpdateException e) { _logger.Error(e); return(BadRequest(AppResult.DependencyDeleteFail())); } }