public async Task AddFolder(AddFolderDto folderDto, int userId, int clientId) { var fileStorageRepository = DataContextManager.CreateRepository <IFileStorageRepository>(); var parentFileStorage = await fileStorageRepository.GetById(folderDto.ParentId, userId, clientId); if (parentFileStorage == null || parentFileStorage != null && !parentFileStorage.IsDirectory) { throw new NotFoundException("File storage", folderDto.ParentId); } var childFileStorages = await fileStorageRepository.GetByParentId(parentFileStorage.Id, userId, clientId); if (childFileStorages.Any(x => x.IsDirectory && x.Name.Equals(folderDto.Name))) { throw new FoundSameObjectException("File storage", folderDto.Name); } var owners = await _permissionHelper.GetOwners(parentFileStorage, userId, clientId); var newFileStorage = new FileStorage { IsDirectory = true, Name = folderDto.Name, CreateDate = DateTime.UtcNow, ParentFileStorageId = parentFileStorage.Id, CreateById = userId, ClientId = owners.ClientId, OwnerId = owners.OwnerId, IsActive = true }; await fileStorageRepository.Add(newFileStorage); }
public async Task <ActionResult> AddFolder([FromBody] AddFolderDto folderDto) { if (!IsAvailableOperation()) { return(BadRequest()); } await _fileStorageService.AddFolder(folderDto, UserId, ClientId); AddLog(Enums.LogType.Create, LogMessage.CreateSuccessByNameMessage(LogMessage.FolderEntityName, folderDto.Name, LogMessage.CreateAction, UserId)); return(Ok()); }
public async Task <ApiResult <GetFolderDto> > AddFolder(AddFolderDto addFolder) { var currentUser = await userService.GetCurrentUser(); var parentFolder = await foldersStorage.GetFolder( new FolderIdentity(addFolder.ParentId, currentUser.Id), CancellationToken.None); var newFolderId = new FolderIdentity(Guid.NewGuid(), currentUser.Id); var newFolder = await foldersStorage.AddFolder( new Folder(newFolderId, addFolder.Name, parentFolder.Id, parentFolder.ParentsPath.Concat(parentFolder.Id.AsArray()).ToList()), CancellationToken.None); return(ApiResult.SuccessResultWithData(newFolder.ToDto())); }