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); }
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)); }
protected virtual async Task <IEnumerable <string> > NormalizeRoots(IEnumerable <string> newPaths) { var currentPaths = await this.GetRoots().ConfigureAwait(false); return(LibraryRoot.Normalize(currentPaths, newPaths)); }