示例#1
0
        public void CanNormalizeLibraryRoots()
        {
            var currentPaths = new[]
            {
                @"C:\a",
                @"C:\1\2\3",
                @"C:\1\2",
                @"C:\1"
            };
            var newPaths = new[]
            {
                @"D:\a",
                @"D:\1\2\3",
                @"D:\1\2",
                @"D:\1"
            };
            var expected = new[]
            {
                @"C:\a",
                @"C:\1",
                @"D:\a",
                @"D:\1"
            };
            var actual = LibraryRoot.Normalize(currentPaths, newPaths).ToArray();

            Assert.AreEqual(expected, actual);
        }
示例#2
0
            protected virtual IReportRow GetRow(IDatabaseComponent database, LibraryRoot libraryRoot, ITransactionSource transaction)
            {
                var table   = database.Tables.LibraryItem;
                var builder = database.QueryFactory.Build();

                builder.Output.AddFunction(QueryFunction.Count, builder.Output.CreateOperator(QueryOperator.Star));
                builder.Source.AddTable(table);
                builder.Filter.Add().With(binary =>
                {
                    binary.Left     = binary.CreateColumn(table.Column("DirectoryName"));
                    binary.Operator = binary.CreateOperator(QueryOperator.Match);
                    binary.Right    = binary.CreateConstant(libraryRoot.DirectoryName + "%");
                });
                var count = database.ExecuteScalar <long>(builder.Build(), transaction);

                return(new ReportRow(libraryRoot.DirectoryName, count));
            }
示例#3
0
        protected virtual async Task <IEnumerable <string> > NormalizeRoots(IEnumerable <string> newPaths)
        {
            var currentPaths = await this.GetRoots().ConfigureAwait(false);

            return(LibraryRoot.Normalize(currentPaths, newPaths));
        }