Files: fix tags

This commit is contained in:
Maksim Chegulov 2022-09-30 14:21:33 +03:00
parent 15593e2a12
commit ff6c83e7ef
6 changed files with 26 additions and 26 deletions

View File

@ -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);

View File

@ -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;
}

View File

@ -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)));

View File

@ -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)
{
}

View File

@ -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)

View File

@ -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);
}
}