Files: added tags filtering
This commit is contained in:
parent
518fe17d14
commit
3123bbd187
@ -39,7 +39,7 @@ public interface ITagDao<T>
|
|||||||
IAsyncEnumerable<Tag> GetTagsAsync(Guid owner, TagType tagType);
|
IAsyncEnumerable<Tag> GetTagsAsync(Guid owner, TagType tagType);
|
||||||
IAsyncEnumerable<Tag> GetTagsAsync(string name, TagType tagType);
|
IAsyncEnumerable<Tag> GetTagsAsync(string name, TagType tagType);
|
||||||
IAsyncEnumerable<Tag> GetTagsAsync(string[] names, TagType tagType);
|
IAsyncEnumerable<Tag> GetTagsAsync(string[] names, TagType tagType);
|
||||||
IAsyncEnumerable<TagInfo> GetTagsInfoAsync(string searchText, TagType tagType, bool byName);
|
IAsyncEnumerable<TagInfo> GetTagsInfoAsync(string searchText, TagType tagType, bool byName, int from = 0, int count = 0);
|
||||||
IAsyncEnumerable<TagInfo> GetTagsInfoAsync(IEnumerable<int> ids);
|
IAsyncEnumerable<TagInfo> GetTagsInfoAsync(IEnumerable<int> ids);
|
||||||
IEnumerable<Tag> SaveTags(IEnumerable<Tag> tag);
|
IEnumerable<Tag> SaveTags(IEnumerable<Tag> tag);
|
||||||
IEnumerable<Tag> SaveTags(Tag tag);
|
IEnumerable<Tag> SaveTags(Tag tag);
|
||||||
|
@ -215,7 +215,7 @@ internal class TagDao<T> : AbstractDao, ITagDao<T>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async IAsyncEnumerable<TagInfo> GetTagsInfoAsync(string searchText, TagType tagType, bool byName)
|
public async IAsyncEnumerable<TagInfo> GetTagsInfoAsync(string searchText, TagType tagType, bool byName, int from = 0, int count = 0)
|
||||||
{
|
{
|
||||||
var q = Query(FilesDbContext.Tag).AsNoTracking().Where(r => r.Type == tagType);
|
var q = Query(FilesDbContext.Tag).AsNoTracking().Where(r => r.Type == tagType);
|
||||||
|
|
||||||
@ -229,6 +229,13 @@ internal class TagDao<T> : AbstractDao, ITagDao<T>
|
|||||||
q = q.Where(r => r.Name.ToLower().Contains(lowerText));
|
q = q.Where(r => r.Name.ToLower().Contains(lowerText));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (count != 0)
|
||||||
|
{
|
||||||
|
q = q.Take(count);
|
||||||
|
}
|
||||||
|
|
||||||
|
q = q.Skip(from);
|
||||||
|
|
||||||
await foreach (var tag in FromQueryAsync(q).ConfigureAwait(false))
|
await foreach (var tag in FromQueryAsync(q).ConfigureAwait(false))
|
||||||
{
|
{
|
||||||
yield return tag;
|
yield return tag;
|
||||||
|
@ -467,7 +467,7 @@ internal abstract class ThirdPartyProviderDao<T> : ThirdPartyProviderDao, IDispo
|
|||||||
return AsyncEnumerable.Empty<Tag>();
|
return AsyncEnumerable.Empty<Tag>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public IAsyncEnumerable<TagInfo> GetTagsInfoAsync(string searchText, TagType tagType, bool byName)
|
public IAsyncEnumerable<TagInfo> GetTagsInfoAsync(string searchText, TagType tagType, bool byName, int from = 0, int count = 0)
|
||||||
{
|
{
|
||||||
return AsyncEnumerable.Empty<TagInfo>();
|
return AsyncEnumerable.Empty<TagInfo>();
|
||||||
}
|
}
|
||||||
|
@ -128,9 +128,9 @@ internal class ProviderTagDao : ProviderDaoBase, ITagDao<string>
|
|||||||
return _tagDao.GetTagsAsync(subject, tagType, fileEntries);
|
return _tagDao.GetTagsAsync(subject, tagType, fileEntries);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IAsyncEnumerable<TagInfo> GetTagsInfoAsync(string searchText, TagType tagType, bool byName)
|
public IAsyncEnumerable<TagInfo> GetTagsInfoAsync(string searchText, TagType tagType, bool byName, int from = 0, int count = 0)
|
||||||
{
|
{
|
||||||
return _tagDao.GetTagsInfoAsync(searchText, tagType, byName);
|
return _tagDao.GetTagsInfoAsync(searchText, tagType, byName, from, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IAsyncEnumerable<TagInfo> GetTagsInfoAsync(IEnumerable<int> ids)
|
public IAsyncEnumerable<TagInfo> GetTagsInfoAsync(IEnumerable<int> ids)
|
||||||
|
@ -154,9 +154,9 @@ public class CustomTagsService<T>
|
|||||||
return folder;
|
return folder;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async IAsyncEnumerable<TagInfo> GetTagsInfoAsync(string searchText, TagType tagType)
|
public async IAsyncEnumerable<TagInfo> GetTagsInfoAsync(string searchText, TagType tagType, int from, int count)
|
||||||
{
|
{
|
||||||
await foreach (var tagInfo in TagDao.GetTagsInfoAsync(searchText, tagType, false))
|
await foreach (var tagInfo in TagDao.GetTagsInfoAsync(searchText, tagType, false, from, count))
|
||||||
{
|
{
|
||||||
yield return tagInfo;
|
yield return tagInfo;
|
||||||
}
|
}
|
||||||
|
@ -250,9 +250,10 @@ public abstract class VirtualRoomsController<T> : ApiControllerBase
|
|||||||
{
|
{
|
||||||
ErrorIfNotDocSpace();
|
ErrorIfNotDocSpace();
|
||||||
|
|
||||||
var filterValue = _apiContext.FilterValue;
|
var from = Convert.ToInt32(_apiContext.StartIndex);
|
||||||
|
var count = Convert.ToInt32(_apiContext.Count);
|
||||||
|
|
||||||
await foreach (var tag in _customTagsService.GetTagsInfoAsync(filterValue, TagType.Custom))
|
await foreach (var tag in _customTagsService.GetTagsInfoAsync(_apiContext.FilterValue, TagType.Custom, from, count))
|
||||||
{
|
{
|
||||||
yield return tag;
|
yield return tag;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user