Files: fix tags
This commit is contained in:
parent
15593e2a12
commit
ff6c83e7ef
@ -41,10 +41,10 @@ public interface ITagDao<T>
|
||||
IAsyncEnumerable<Tag> GetTagsAsync(string[] names, TagType tagType);
|
||||
IAsyncEnumerable<TagInfo> GetTagsInfoAsync(string searchText, TagType tagType, bool byName, int from = 0, int count = 0);
|
||||
IAsyncEnumerable<TagInfo> GetTagsInfoAsync(IEnumerable<string> names);
|
||||
IEnumerable<Tag> SaveTags(IEnumerable<Tag> tag);
|
||||
IEnumerable<Tag> SaveTags(IEnumerable<Tag> tag, Guid createdBy = default);
|
||||
IEnumerable<Tag> SaveTags(Tag tag);
|
||||
Task<TagInfo> SaveTagInfoAsync(TagInfo tagInfo);
|
||||
void UpdateNewTags(IEnumerable<Tag> tag);
|
||||
void UpdateNewTags(IEnumerable<Tag> tag, Guid createdBy = default);
|
||||
void UpdateNewTags(Tag tag);
|
||||
Task RemoveTagsAsync(IEnumerable<int> tagsIds);
|
||||
Task RemoveTagsAsync(FileEntry<T> entry, IEnumerable<int> tagsIds);
|
||||
|
@ -303,7 +303,7 @@ internal class TagDao<T> : AbstractDao, ITagDao<T>
|
||||
return _mapper.Map<DbFilesTag, TagInfo>(tag.Entity);
|
||||
}
|
||||
|
||||
public IEnumerable<Tag> SaveTags(IEnumerable<Tag> tags)
|
||||
public IEnumerable<Tag> SaveTags(IEnumerable<Tag> tags, Guid createdBy = default)
|
||||
{
|
||||
var result = new List<Tag>();
|
||||
|
||||
@ -334,7 +334,7 @@ internal class TagDao<T> : AbstractDao, ITagDao<T>
|
||||
var createOn = _tenantUtil.DateTimeToUtc(_tenantUtil.DateTimeNow());
|
||||
var cacheTagId = new Dictionary<string, int>();
|
||||
|
||||
result.AddRange(tags.Select(t => SaveTagAsync(t, cacheTagId, createOn).Result));
|
||||
result.AddRange(tags.Select(t => SaveTagAsync(t, cacheTagId, createOn, createdBy).Result));
|
||||
|
||||
tx.Commit();
|
||||
});
|
||||
@ -412,7 +412,7 @@ internal class TagDao<T> : AbstractDao, ITagDao<T>
|
||||
filesDbContext.SaveChanges();
|
||||
}
|
||||
|
||||
private async Task<Tag> SaveTagAsync(Tag t, Dictionary<string, int> cacheTagId, DateTime createOn)
|
||||
private async Task<Tag> SaveTagAsync(Tag t, Dictionary<string, int> cacheTagId, DateTime createOn, Guid createdBy = default)
|
||||
{
|
||||
using var filesDbContext = _dbContextFactory.CreateDbContext();
|
||||
|
||||
@ -454,7 +454,7 @@ internal class TagDao<T> : AbstractDao, ITagDao<T>
|
||||
TagId = id,
|
||||
EntryId = (await MappingIDAsync(t.EntryId, true)).ToString(),
|
||||
EntryType = t.EntryType,
|
||||
CreateBy = _authContext.CurrentAccount.ID,
|
||||
CreateBy = createdBy != default ? createdBy : _authContext.CurrentAccount.ID,
|
||||
CreateOn = createOn,
|
||||
Count = t.Count
|
||||
};
|
||||
@ -465,7 +465,7 @@ internal class TagDao<T> : AbstractDao, ITagDao<T>
|
||||
return t;
|
||||
}
|
||||
|
||||
public void UpdateNewTags(IEnumerable<Tag> tags)
|
||||
public void UpdateNewTags(IEnumerable<Tag> tags, Guid createdBy = default)
|
||||
{
|
||||
if (tags == null || !tags.Any())
|
||||
{
|
||||
@ -485,7 +485,7 @@ internal class TagDao<T> : AbstractDao, ITagDao<T>
|
||||
|
||||
foreach (var tag in tags)
|
||||
{
|
||||
UpdateNewTagsInDbAsync(tag, createOn).Wait();
|
||||
UpdateNewTagsInDbAsync(tag, createOn, createdBy).Wait();
|
||||
}
|
||||
|
||||
tx.Commit();
|
||||
@ -508,17 +508,17 @@ internal class TagDao<T> : AbstractDao, ITagDao<T>
|
||||
}
|
||||
}
|
||||
|
||||
private Task UpdateNewTagsInDbAsync(Tag tag, DateTime createOn)
|
||||
private Task UpdateNewTagsInDbAsync(Tag tag, DateTime createOn, Guid createdBy = default)
|
||||
{
|
||||
if (tag == null)
|
||||
{
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
return InternalUpdateNewTagsInDbAsync(tag, createOn);
|
||||
return InternalUpdateNewTagsInDbAsync(tag, createOn, createdBy);
|
||||
}
|
||||
|
||||
private async Task InternalUpdateNewTagsInDbAsync(Tag tag, DateTime createOn)
|
||||
private async Task InternalUpdateNewTagsInDbAsync(Tag tag, DateTime createOn, Guid createdBy = default)
|
||||
{
|
||||
using var filesDbContext = _dbContextFactory.CreateDbContext();
|
||||
var mappedId = (await MappingIDAsync(tag.EntryId)).ToString();
|
||||
@ -529,7 +529,7 @@ internal class TagDao<T> : AbstractDao, ITagDao<T>
|
||||
|
||||
foreach (var f in forUpdate)
|
||||
{
|
||||
f.CreateBy = _authContext.CurrentAccount.ID;
|
||||
f.CreateBy = createdBy != default ? createdBy : _authContext.CurrentAccount.ID;
|
||||
f.CreateOn = createOn;
|
||||
f.Count = tag.Count;
|
||||
}
|
||||
|
@ -1583,7 +1583,7 @@ public class FileStorageService<T> //: IFileStorageService
|
||||
var folderDao = GetFolderDao();
|
||||
folder = await folderDao.GetFolderAsync(folderId);
|
||||
|
||||
var result = await _fileMarker.MarkedItemsAsync(folder).ToListAsync();
|
||||
var result = await _fileMarker.MarkedItemsAsync(folder).Where(e => e.FileEntryType == FileEntryType.File).ToListAsync();
|
||||
|
||||
result = new List<FileEntry>(_entryManager.SortEntries<T>(result, new OrderBy(SortedByType.DateAndTime, false)));
|
||||
|
||||
|
@ -594,7 +594,7 @@ internal abstract class ThirdPartyProviderDao<T> : ThirdPartyProviderDao, IDispo
|
||||
return Task.FromResult(tagInfo);
|
||||
}
|
||||
|
||||
public IEnumerable<Tag> SaveTags(IEnumerable<Tag> tag)
|
||||
public IEnumerable<Tag> SaveTags(IEnumerable<Tag> tag, Guid createdBy = default)
|
||||
{
|
||||
return new List<Tag>();
|
||||
}
|
||||
@ -604,7 +604,7 @@ internal abstract class ThirdPartyProviderDao<T> : ThirdPartyProviderDao, IDispo
|
||||
return new List<Tag>();
|
||||
}
|
||||
|
||||
public void UpdateNewTags(IEnumerable<Tag> tag)
|
||||
public void UpdateNewTags(IEnumerable<Tag> tag, Guid createdBy = default)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -83,9 +83,9 @@ internal class ProviderTagDao : ProviderDaoBase, ITagDao<string>
|
||||
return _tagDao.GetTagsAsync(names, tagType);
|
||||
}
|
||||
|
||||
public IEnumerable<Tag> SaveTags(IEnumerable<Tag> tag)
|
||||
public IEnumerable<Tag> SaveTags(IEnumerable<Tag> tag, Guid createdBy = default)
|
||||
{
|
||||
return _tagDao.SaveTags(tag);
|
||||
return _tagDao.SaveTags(tag, createdBy);
|
||||
}
|
||||
|
||||
public IEnumerable<Tag> SaveTags(Tag tag)
|
||||
@ -93,9 +93,9 @@ internal class ProviderTagDao : ProviderDaoBase, ITagDao<string>
|
||||
return _tagDao.SaveTags(tag);
|
||||
}
|
||||
|
||||
public void UpdateNewTags(IEnumerable<Tag> tag)
|
||||
public void UpdateNewTags(IEnumerable<Tag> tag, Guid createdBy = default)
|
||||
{
|
||||
_tagDao.UpdateNewTags(tag);
|
||||
_tagDao.UpdateNewTags(tag, createdBy);
|
||||
}
|
||||
|
||||
public void UpdateNewTags(Tag tag)
|
||||
|
@ -69,7 +69,7 @@ public class FileMarker
|
||||
{
|
||||
private readonly ICache _cache;
|
||||
|
||||
private const string _cacheKeyFormat = "MarkedAsNew/{0}/folder_{1}";
|
||||
private const string CacheKeyFormat = "MarkedAsNew/{0}/folder_{1}";
|
||||
|
||||
private readonly TenantManager _tenantManager;
|
||||
private readonly UserManager _userManager;
|
||||
@ -358,12 +358,12 @@ public class FileMarker
|
||||
|
||||
if (updateTags.Count > 0)
|
||||
{
|
||||
tagDao.UpdateNewTags(updateTags);
|
||||
tagDao.UpdateNewTags(updateTags, obj.CurrentAccountId);
|
||||
}
|
||||
|
||||
if (newTags.Count > 0)
|
||||
{
|
||||
tagDao.SaveTags(newTags);
|
||||
tagDao.SaveTags(newTags, obj.CurrentAccountId);
|
||||
}
|
||||
|
||||
async Task GetNewTagsAsync<T1>(Guid userID, List<FileEntry<T1>> entries)
|
||||
@ -720,7 +720,7 @@ public class FileMarker
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
var parentEntry = entryTagsProvider.Keys
|
||||
.FirstOrDefault(entryCountTag => Equals(entryCountTag.Id, entryTag.Key.ParentId));
|
||||
@ -919,13 +919,13 @@ public class FileMarker
|
||||
|
||||
private void InsertToCahce(object folderId, int count)
|
||||
{
|
||||
var key = string.Format(_cacheKeyFormat, _authContext.CurrentAccount.ID, folderId);
|
||||
var key = string.Format(CacheKeyFormat, _authContext.CurrentAccount.ID, folderId);
|
||||
_cache.Insert(key, count.ToString(), TimeSpan.FromMinutes(10));
|
||||
}
|
||||
|
||||
private int GetCountFromCahce(object folderId)
|
||||
{
|
||||
var key = string.Format(_cacheKeyFormat, _authContext.CurrentAccount.ID, folderId);
|
||||
var key = string.Format(CacheKeyFormat, _authContext.CurrentAccount.ID, folderId);
|
||||
var count = _cache.Get<string>(key);
|
||||
|
||||
return count == null ? -1 : int.Parse(count);
|
||||
@ -938,7 +938,7 @@ public class FileMarker
|
||||
|
||||
private void RemoveFromCahce(object folderId, Guid userId)
|
||||
{
|
||||
var key = string.Format(_cacheKeyFormat, userId, folderId);
|
||||
var key = string.Format(CacheKeyFormat, userId, folderId);
|
||||
_cache.Remove(key);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user