CmisSync.Lib.Storage.Database.MetaDataStorage.ToFindString C# (CSharp) Method

ToFindString() public method

Prints the file/folder structure like unix "find" command.
public ToFindString ( ) : string
return string
        public string ToFindString() {
            using(var tran = this.engine.GetTransaction()) {
                MappedObject root = null;
                List<MappedObject> objects = new List<MappedObject>();
                foreach (var row in tran.SelectForward<string, DbCustomSerializer<MappedObject>>(MappedObjectsTable)) {
                    var value = row.Value;
                    if (value == null) {
                        continue;
                    }

                    var data = value.Get;
                    if (data == null) {
                        continue;
                    }

                    if (data.ParentId == null) {
                        root = data;
                    } else {
                        objects.Add(data);
                    }
                }

                if (root == null) {
                    return string.Empty;
                }

                string result = this.PrintFindLines(objects, root, string.Empty);
                var sb = new StringBuilder();
                sb.Append(result);
                foreach (var obj in objects) {
                    sb.Append(Environment.NewLine).Append(obj.ToString());
                }

                return sb.ToString();
            }
        }

Usage Example

Exemplo n.º 1
0
        public void ToLinePrintReturnsOneLinePerNotFittingEntry() {
            var storage = new MetaDataStorage(this.engine, Mock.Of<IPathMatcher>(), false);
            var rootFolder = new MappedObject("name", "rootId", MappedObjectType.Folder, null, "token");
            var child1Folder = new MappedObject("sub1", "subId1", MappedObjectType.Folder, "WRONGID", "token");
            storage.SaveMappedObject(rootFolder);
            storage.SaveMappedObject(child1Folder);

            string src = storage.ToFindString();

            int count = src.Select((c, i) => src.Substring(i)).Count(sub => sub.StartsWith(Environment.NewLine));
            Assert.That(count, Is.EqualTo(2), string.Format("Newlines Counting {0}:{2} {1}", count, src, Environment.NewLine));
        }
All Usage Examples Of CmisSync.Lib.Storage.Database.MetaDataStorage::ToFindString