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."); })); }
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)); } }