public async Task <IActionResult> RegistAttachedFile(long id, [FromBody] AddFileInputModel model) { //データの入力チェック if (!ModelState.IsValid) { return(JsonBadRequest("Invalid inputs.")); } //データの存在チェック var trainingHistory = await trainingHistoryRepository.GetByIdAsync(id); if (trainingHistory == null) { return(JsonNotFound($"Training ID {id} is not found.")); } //同じ名前のファイルは登録できない if (await trainingHistoryRepository.ExistsAttachedFileAsync(id, model.FileName)) { return(JsonConflict($"Training {id} has already a file named {model.FileName}.")); } var attachedFile = new TrainingHistoryAttachedFile { TrainingHistoryId = id, FileName = model.FileName, Key = ResourceType.TrainingHistoryAttachedFiles.ToString(), //model.Key ?? ResourceType.TrainingHistoryAttachedFiles.ToString(); StoredPath = model.StoredPath }; trainingHistoryRepository.AddAttachedFile(attachedFile); unitOfWork.Commit(); return(JsonOK(new AttachedFileOutputModel(id, model.FileName, attachedFile.Id))); }
public async Task <IActionResult> AddFile(long id, [FromBody] AddFileInputModel model, [FromServices] IDataSetRepository dataSetRepository) { //データの入力チェック if (!ModelState.IsValid) { return(JsonBadRequest("Invalid inputs.")); } //データの存在チェック var data = await dataRepository.GetDataIncludeAllAsync(id); if (data == null) { return(JsonNotFound($"Data ID {id} is not found.")); } var checkResult = await CheckDataIsLocked(data, dataSetRepository); if (checkResult != null) { return(checkResult); } //同じファイル名は登録できない var file = data.DataProperties.FirstOrDefault(d => d.Key == model.FileName); if (file != null) { return(JsonConflict($"Data {data.Name} has already a file named {model.FileName}.")); } // データファイルの登録 var property = dataRepository.AddFile(data, model.FileName, model.StoredPath); unitOfWork.Commit(); return(JsonCreated(new DataFileOutputModel { Id = id, Key = property.Key, FileId = property.Id, FileName = model.FileName })); }