/// <summary>
        /// 指定したデータが編集可能か判定する。
        /// 編集可能な場合はnullを返す。
        /// </summary>
        private async Task <IActionResult> CheckDataIsLocked(Data data, IDataSetRepository dataSetRepository)
        {
            //このデータが含まれるデータセットが編集可能か
            var lockedDataSet = dataSetRepository.GetLockedDataSetByData(data.Id);

            if (lockedDataSet != null)
            {
                return(JsonConflict($"Data {data.Name} is in the locked DataSet {lockedDataSet.Name}."));
            }

            // このデータを元にした加工履歴履歴がある場合は削除禁止
            if (await preprocessHistoryRepository.ExistsByInputDataIdAsync(data.Id))
            {
                return(JsonConflict($"Data {data.Name} has been preprocessed."));
            }
            // このデータが何かしらのデータから派生した物であれば、削除禁止
            var sourceData = await preprocessHistoryRepository.GetInputDataAsync(data.Id);

            if (sourceData != null)
            {
                return(JsonConflict($"Data {data.Name} was generated from {sourceData.Id}:{sourceData.Name}."));
            }
            return(null);
        }