Exemplo n.º 1
0
        public void ExportPages(string dir, GraphCursor <IVisual, IVisualEdge> source)
        {
            var graph         = source.Graph;
            var digidocVisual = source.Cursor;
            var man           = new StreamContentIoManager();

            if (HasPages(graph, digidocVisual))
            {
                int i = 0;
                var s = source.Cursor.Data == null ? CommonSchema.NullString : source.Cursor.Data.ToString();

                foreach (var pageContent in PageStreams(graph, digidocVisual))
                {
                    var info     = man.GetContentInfo(pageContent);
                    var ext      = info != null ? "." + info.Extension : "";
                    var pageName = i.ToString().PadLeft(5, '0');
                    if (pageContent.Description != null)
                    {
                        pageName = pageContent.Description.ToString().PadLeft(5, '0');
                    }

                    var name = dir + Path.DirectorySeparatorChar + s + " " + pageName + ext;

                    man.WriteSink(pageContent, new Uri(name));
                    pageContent.Data.Dispose();
                    pageContent.Data = null;
                }
            }
        }