Example #1
0
        public async Task <ApiResult <GetFolderDto> > GetFolder(Guid folderId)
        {
            var folder = await foldersStorage.GetFolder(
                new FolderIdentity(folderId, (await userService.GetCurrentUser()).Id), CancellationToken.None);

            return(ApiResult.SuccessResultWithData(folder.ToDto()));
        }
        public async Task <ApiResult <IReadOnlyCollection <AddDocumentResultDto> > > AddDocuments(
            [FromBody] AddDocumentsInput input)
        {
            var documentsToAdd = new List <DocumentInfo>();
            var currentUser    = await userService.GetCurrentUser();

            var parentFolder = await foldersStorage.GetFolder(new FolderIdentity(input.FolderId, currentUser.Id),
                                                              CancellationToken.None);

            foreach (var documentDto in input.Documents)
            {
                var content = await tempContentStorage.GetTempContent(documentDto.ContentToken, CancellationToken.None);

                documentsToAdd.Add(documentDto.ToDocumentInfo(content, currentUser, parentFolder));
            }

            var result = (await mediator.Send(new AddDocumentsCommand(documentsToAdd)));

            return(ApiResult.SuccessResultWithData(
                       (IReadOnlyCollection <AddDocumentResultDto>)result
                       .States
                       .Select(x => new AddDocumentResultDto
            {
                Id = x.Key.GetClientId(),
                State = x.Value
            })
                       .ToArray()));
        }