/// <summary> /// 指定されたIDのデータを削除する。 /// まずDBのレコードを削除して、その後オブジェクトストレージから上記のデータを削除する。 /// コミットは行わないので、呼び出し側で実行すること。(基本的には結果に関わらずコミットする) /// </summary> /// <param name="dataId">データID</param> public async Task <bool> DeleteDataAsync(long dataId) { var dataSetRepository = CommonDiLogic.DynamicDi <IDataSetRepository>(); // データセットエントリを削除 dataSetRepository.RemoveDataFromDataSet(dataId); // データとファイルを削除 var data = await dataRepository.GetDataIncludeAllAsync(dataId); dataRepository.DeleteData(data); foreach (var file in data.DataProperties) { if (file.DataFile != null) { await storageLogic.AddFileToDeleteListAsync(ResourceType.Data, file.DataFile.StoredPath); } } // タグマップを削除 tagLogic.Delete(dataId); // オブジェクトストレージからファイルを削除 return(await storageLogic.DeleteFilesInDeleteListAsync()); }