Esempio n. 1
0
        public async Task <IActionResult> DeleteAttachedFile(long id, long?fileId)
        {
            if (fileId == null)
            {
                return(JsonBadRequest("File ID is required."));
            }
            if (fileId.Value < 0)
            {
                return(JsonBadRequest("The file is locked. You can NOT delete the file."));
            }
            //存在チェック
            //子の添付ファイルが存在すれば親の学習履歴は必ず存在するはずなので、そっちはチェックしない
            TrainingHistoryAttachedFile file = await trainingHistoryRepository.GetAttachedFileAsync(fileId.Value);

            if (file == null)
            {
                return(JsonNotFound($"File ID {fileId.Value} is not found."));
            }

            trainingHistoryRepository.DeleteAttachedFile(file);
            await storageLogic.DeleteFileAsync(ResourceType.TrainingHistoryAttachedFiles, file.StoredPath);

            unitOfWork.Commit();

            return(JsonNoContent());
        }
Esempio n. 2
0
        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)));
        }
 /// <summary>
 /// 指定した学習履歴添付ファイルを削除します。
 /// </summary>
 /// <param name="file">削除対象のファイル</param>
 public void DeleteAttachedFile(TrainingHistoryAttachedFile file)
 {
     DeleteModel <TrainingHistoryAttachedFile>(file);
 }
 /// <summary>
 /// 学習履歴添付ファイルを追加します。
 /// </summary>
 /// <param name="file">追加対象のファイル</param>
 public void AddAttachedFile(TrainingHistoryAttachedFile file)
 {
     AddModel <TrainingHistoryAttachedFile>(file);
 }