public async Task <IActionResult> Delete(long?id,
                                                 [FromServices] IClusterManagementLogic clusterManagementLogic,
                                                 [FromServices] DataAccess.Repositories.Interfaces.TenantRepositories.ITrainingHistoryRepository trainingHistoryRepository)
        {
            //データの入力チェック
            if (id == null)
            {
                return(JsonBadRequest("Invalid inputs."));
            }
            //データの存在チェック
            var registry = await registryRepository.GetByIdAsync(id.Value);

            if (registry == null)
            {
                return(JsonNotFound($"Registry ID {id.Value} is not found."));
            }
            //データの編集可否チェック
            if (registry.IsNotEditable)
            {
                return(JsonBadRequest($"Registry ID {id.Value} is not allowed to delete."));
            }

            //このレジストリを登録しているテナントがいた場合、削除はできない
            var tenant = registryRepository.GetTenant(registry.Id);

            if (tenant != null)
            {
                return(JsonConflict($"Registry {registry.Id}:{registry.Name} is used at Tenant {tenant.Id}:{tenant.Name}."));
            }
            //このレジストリを使った履歴がある場合、削除はできない
            var training = trainingHistoryRepository.Find(t => t.ContainerRegistryId == registry.Id);

            if (training != null)
            {
                return(JsonConflict($"Registry {registry.Id}:{registry.Name} is used at training {training.Id} in Tenant {training.TenantId}."));
            }

            //クラスタ管理サービス側の登録情報は特に削除しない(残っていても問題ない)
            registryRepository.Delete(registry);
            unitOfWork.Commit();

            return(JsonNoContent());
        }
        public async Task <IActionResult> Delete(long?id,
                                                 [FromServices] DataAccess.Repositories.Interfaces.TenantRepositories.ITrainingHistoryRepository trainingHistoryRepository)
        {
            //データの入力チェック
            if (id == null)
            {
                return(JsonBadRequest("Invalid inputs."));
            }
            //データの存在チェック
            var git = await gitRepository.GetByIdAsync(id.Value);

            if (git == null)
            {
                return(JsonNotFound($"Git ID {id.Value} is not found."));
            }
            //データの編集可否チェック
            if (git.IsNotEditable)
            {
                return(JsonBadRequest($"Git ID {id.Value} is not allowed to delete."));
            }

            //このGitを登録しているテナントがいた場合、削除はできない
            var tenant = gitRepository.GetTenant(git.Id);

            if (tenant != null)
            {
                return(JsonConflict($"Git {git.Id}:{git.Name} is used at Tenant {tenant.Id}:{tenant.Name}."));
            }
            //このGitを使った履歴がある場合、削除はできない
            var training = trainingHistoryRepository.Find(t => t.ModelGitId == git.Id);

            if (training != null)
            {
                return(JsonConflict($"Git {git.Id}:{git.Name} is used at training {training.Id} in Tenant {training.TenantId}."));
            }

            gitRepository.Delete(git);
            unitOfWork.Commit();

            return(JsonNoContent());
        }