Exemplo n.º 1
0
        public async Task <IActionResult> Delete(long?id)
        {
            //データの入力チェック
            if (id == null)
            {
                return(JsonBadRequest("Invalid inputs."));
            }
            //データの存在チェック
            var storage = await tenantRepository.GetStorageForUpdateAsync(id.Value);

            if (storage == null)
            {
                return(JsonNotFound($"Storage ID {id.Value} is not found."));
            }

            //このStorageを登録しているテナントがいた場合、削除はできない
            var tenant = tenantRepository.GetAllTenants().FirstOrDefault(t => t.StorageId == storage.Id);

            if (tenant != null)
            {
                return(JsonConflict($"Storage {storage.Id}:{storage.Name} is used at Tenant {tenant.Id}:{tenant.Name}."));
            }

            tenantRepository.DeleteStorage(storage);
            unitOfWork.Commit();
            tenantRepository.Refresh();

            return(JsonNoContent());
        }