Exemple #1
0
        public async Task <IActionResult> GetChildren([FromQuery] Guid directoryId)
        {
            return(await ProcessAsync(async() =>
            {
                var user = await UserService.GetUserByPrincipal(User);

                if (await _directoryService.IsAuthorised(user, directoryId))
                {
                    var directory = await _directoryService.GetById(directoryId);

                    var userIsStaff = user.UserType == UserTypes.Staff;

                    var children = await _directoryService.GetChildren(directoryId, userIsStaff);

                    var childList = new List <DirectoryChildListModel>();

                    childList.AddRange(children.Subdirectories.Select(x => x.GetListModel()));
                    childList.AddRange(children.Files.Select(x => x.GetListModel()));

                    var response = new DirectoryChildListWrapper
                    {
                        Directory = directory,
                        Children = childList
                    };

                    return Ok(response);
                }

                return Unauthorized("Access denied.");
            }));
        }
Exemple #2
0
        public async Task <IActionResult> GetDirectoryChildren([FromRoute] Guid directoryId)
        {
            try
            {
                if (await CanAccessDirectory(directoryId, false))
                {
                    var user = await GetLoggedInUser();

                    var directory = await _documentService.GetDirectoryById(directoryId);

                    var children =
                        await _documentService.GetDirectoryChildren(directoryId, user.UserType == UserTypes.Staff);

                    var childList = new List <DirectoryChildSummaryModel>();

                    childList.AddRange(children.Subdirectories.Select(x => x.GetListModel()));
                    childList.AddRange(children.Files.Select(x => x.GetListModel()));

                    var response = new DirectoryChildListWrapper
                    {
                        Directory = directory,
                        Children  = childList
                    };

                    return(Ok(response));
                }

                return(PermissionError());
            }
            catch (Exception e)
            {
                return(HandleException(e));
            }
        }