예제 #1
0
        public virtual async Task <FileInfoDto> MoveAsync(Guid id, MoveFileInput input)
        {
            var newFileName = input.NewFileName;

            var file = await GetEntityByIdAsync(id);

            var configuration = _configurationProvider.Get(file.FileContainerName);

            CheckFileExtension(new[] { Path.GetExtension(newFileName) }, configuration);

            var oldParent = await TryGetEntityByNullableIdAsync(file.ParentId);

            var newParent = input.NewParentId == file.ParentId
                ? oldParent
                : await TryGetEntityByNullableIdAsync(input.NewParentId);

            await _fileManager.ChangeAsync(file, newFileName, oldParent, newParent);

            await AuthorizationService.CheckAsync(CreateFileOperationInfoModel(file),
                                                  new OperationAuthorizationRequirement { Name = FileManagementPermissions.File.Move });

            await _repository.UpdateAsync(file, autoSave : true);

            return(await MapToGetOutputDtoAsync(file));
        }
예제 #2
0
        public virtual async Task <IActionResult> OnPostAsync()
        {
            var dto = new MoveFileInput
            {
                NewParentId = ViewModel.NewParentId,
                NewFileName = ViewModel.NewFileName
            };

            await _service.MoveAsync(Id, dto);

            return(NoContent());
        }
예제 #3
0
 public Task <FileInfoDto> MoveAsync(Guid id, MoveFileInput input)
 {
     return(_service.MoveAsync(id, input));
 }