Merge branch 'master' into feature/files

This commit is contained in:
Daniil Senkiv 2020-03-13 17:51:46 +03:00
commit 4d50abfb63
3 changed files with 19 additions and 18 deletions

View File

@ -174,16 +174,16 @@ namespace ASC.Files.Core.Data
return MappingID(id, false);
}
internal static bool BuildSearch(IDbSearch dbSearch, string text, SearhTypeEnum searhTypeEnum)
internal static IQueryable<T> BuildSearch<T>(IQueryable<T> query, string text, SearhTypeEnum searhTypeEnum) where T : IDbSearch
{
var lowerTitle = dbSearch.Title.ToLower();
var lowerText = text.ToLower().Trim().Replace("%", "\\%").Replace("_", "\\_");
return searhTypeEnum switch
{
SearhTypeEnum.Start => lowerTitle.StartsWith(lowerText),
SearhTypeEnum.End => lowerTitle.EndsWith(lowerText),
SearhTypeEnum.Any => lowerTitle.Contains(lowerText),
_ => lowerTitle.EndsWith(lowerText),
SearhTypeEnum.Start => query.Where(r => r.Title.ToLower().StartsWith(lowerText)),
SearhTypeEnum.End => query.Where(r => r.Title.ToLower().EndsWith(lowerText)),
SearhTypeEnum.Any => query.Where(r => r.Title.ToLower().Contains(lowerText)),
_ => query,
};
}

View File

@ -181,7 +181,7 @@ namespace ASC.Files.Core.Data
}
else
{
query = query.Where(r => BuildSearch(r, searchText, SearhTypeEnum.Any));
query = BuildSearch(query, searchText, SearhTypeEnum.Any);
}
}
@ -211,7 +211,7 @@ namespace ASC.Files.Core.Data
case FilterType.ByExtension:
if (!string.IsNullOrEmpty(searchText))
{
query = query.Where(r => BuildSearch(r, searchText, SearhTypeEnum.End));
query = BuildSearch(query, searchText, SearhTypeEnum.End);
}
break;
}
@ -261,7 +261,7 @@ namespace ASC.Files.Core.Data
}
else
{
q = q.Where(r => BuildSearch(r, searchText, SearhTypeEnum.Any));
q = BuildSearch(q, searchText, SearhTypeEnum.Any);
}
}
@ -313,7 +313,7 @@ namespace ASC.Files.Core.Data
case FilterType.ByExtension:
if (!string.IsNullOrEmpty(searchText))
{
q = q.Where(r => BuildSearch(r, searchText, SearhTypeEnum.End));
q = BuildSearch(q, searchText, SearhTypeEnum.End);
}
break;
}
@ -970,7 +970,7 @@ namespace ASC.Files.Core.Data
}
else
{
q = q.Where(r => BuildSearch(r, searchText, SearhTypeEnum.Any));
q = BuildSearch(q, searchText, SearhTypeEnum.Any);
}
}
@ -1000,7 +1000,7 @@ namespace ASC.Files.Core.Data
case FilterType.ByExtension:
if (!string.IsNullOrEmpty(searchText))
{
q = q.Where(r => BuildSearch(r, searchText, SearhTypeEnum.End));
q = BuildSearch(q, searchText, SearhTypeEnum.End);
}
break;
}
@ -1023,7 +1023,7 @@ namespace ASC.Files.Core.Data
}
else
{
var query = GetFileQuery(r => r.CurrentVersion && BuildSearch(r, searchText, SearhTypeEnum.Any));
var query = BuildSearch(GetFileQuery(r => r.CurrentVersion), searchText, SearhTypeEnum.Any);
return FromQueryWithShared(query)
.Where(f =>
bunch

View File

@ -160,13 +160,14 @@ namespace ASC.Files.Core.Data
if (orderBy == null) orderBy = new OrderBy(SortedByType.DateAndTime, false);
var q = GetFolderQuery(r => r.ParentId.ToString() == parentId.ToString());
var parentIdString = parentId.ToString();
var q = GetFolderQuery(r => r.ParentId.ToString() == parentIdString);
if (withSubfolders)
{
q = GetFolderQuery()
.Join(FilesDbContext.Tree, r => r.Id, a => a.FolderId, (folder, tree) => new { folder, tree })
.Where(r => r.tree.ParentId.ToString() == parentId.ToString() && r.tree.Level != 0)
.Where(r => r.tree.ParentId.ToString() == parentIdString && r.tree.Level != 0)
.Select(r => r.folder);
}
@ -178,7 +179,7 @@ namespace ASC.Files.Core.Data
}
else
{
q = q.Where(r => BuildSearch(r, searchText, SearhTypeEnum.Any));
q = BuildSearch(q, searchText, SearhTypeEnum.Any);
}
}
@ -248,7 +249,7 @@ namespace ASC.Files.Core.Data
}
else
{
q = q.Where(r => BuildSearch(r, searchText, SearhTypeEnum.Any));
q = BuildSearch(q, searchText, SearhTypeEnum.Any);
}
}
@ -694,7 +695,7 @@ namespace ASC.Files.Core.Data
return FromQueryWithShared(q1);
}
var q = GetFolderQuery(r => BuildSearch(r, text, SearhTypeEnum.Any));
var q = BuildSearch(GetFolderQuery(), text, SearhTypeEnum.Any);
return FromQueryWithShared(q);
}