예제 #1
0
        protected virtual async Task Initialize(PathIdentifier identifier)
        {
            state = await pathService.OpenFolder(identifier);

            page = new ItemQueryResponse
            {
                PathName = identifier.LeafName,
                PathTree = state.Paths.Root,
            };

            if (state.Folder != null)
            {
                var caseNumber = state.Folder.Read <string>("attribute.casenumber");
                var lastName   = state.Folder.Read <string>("attribute.lastname");

                if (lastName != null)
                {
                    if (caseNumber != null)
                    {
                        page.PathTree.Name = $"{lastName} ({caseNumber})";
                    }
                    else
                    {
                        page.PathTree.Name = lastName;
                    }
                }
            }

            filteredFiles = state.Folder.Files.Rows as IEnumerable <FileModel>; //A collection of files that we will use to build up our response.
        }
예제 #2
0
        public async Task <PathServiceState> OpenFolder(FolderIdentifier identifier, bool skipPathParse = false, CancellationToken cancellationToken = default(CancellationToken))
        {
            var folder = await Connection.Folder.GetAsync(identifier, new List <PopulationDirective>
            {
                new PopulationDirective
                {
                    Name = nameof(FolderModel.Files)
                           // and paging bits
                }
            });

            if (folder != null)
            {
                var state = new PathServiceState()
                {
                    Folder = folder,
                    Paths  = new PathProcessor(identifier)
                };

                // add and filter the path reservations from metadata
                if (!skipPathParse)
                {
                    state.Paths.Read(state.Folder);
                }

                return(state);
            }
            else
            {
                throw new Exception("Folder does not exist");
            }
        }