Files: fix create file in thirdparty
This commit is contained in:
parent
47020b7a01
commit
7c228a78e5
@ -588,7 +588,7 @@ namespace ASC.Web.Files.Services.WCFService
|
||||
file.Title = FileUtility.ReplaceFileExtension(fileWrapper.Title, fileExt);
|
||||
}
|
||||
|
||||
if (fileWrapper.TemplateId.Equals(default(T)))
|
||||
if (fileWrapper.TemplateId == null || fileWrapper.TemplateId.Equals(default(T)))
|
||||
{
|
||||
var culture = UserManager.GetUsers(AuthContext.CurrentAccount.ID).GetCulture();
|
||||
var storeTemplate = GetStoreTemplate();
|
||||
|
@ -104,7 +104,7 @@ namespace ASC.Web.Files.Utils
|
||||
private TenantManager TenantManager { get; }
|
||||
private UserManager UserManager { get; }
|
||||
private IDaoFactory DaoFactory { get; }
|
||||
private GlobalFolder GlobalFolder { get; }
|
||||
private GlobalFolder GlobalFolder { get; }
|
||||
private FileSecurity FileSecurity { get; }
|
||||
private CoreBaseSettings CoreBaseSettings { get; }
|
||||
private AuthContext AuthContext { get; }
|
||||
@ -125,7 +125,7 @@ namespace ASC.Web.Files.Utils
|
||||
TenantManager = tenantManager;
|
||||
UserManager = userManager;
|
||||
DaoFactory = daoFactory;
|
||||
GlobalFolder = globalFolder;
|
||||
GlobalFolder = globalFolder;
|
||||
FileSecurity = fileSecurity;
|
||||
CoreBaseSettings = coreBaseSettings;
|
||||
AuthContext = authContext;
|
||||
@ -150,7 +150,7 @@ namespace ASC.Web.Files.Utils
|
||||
|
||||
var userIDs = obj.UserIDs;
|
||||
|
||||
var userEntriesData = new Dictionary<Guid, List<FileEntry<T>>>();
|
||||
var userEntriesData = new Dictionary<Guid, List<FileEntry>>();
|
||||
|
||||
if (obj.FileEntry.RootFolderType == FolderType.BUNCH)
|
||||
{
|
||||
@ -158,7 +158,7 @@ namespace ASC.Web.Files.Utils
|
||||
|
||||
parentFolders.Add(folderDao.GetFolder(GlobalFolder.GetFolderProjects<T>(DaoFactory)));
|
||||
|
||||
var entries = new List<FileEntry<T>> { obj.FileEntry };
|
||||
var entries = new List<FileEntry> { obj.FileEntry };
|
||||
entries = entries.Concat(parentFolders).ToList();
|
||||
|
||||
userIDs.ForEach(userID =>
|
||||
@ -194,26 +194,27 @@ namespace ASC.Web.Files.Utils
|
||||
if (userEntriesData.ContainsKey(userID))
|
||||
userEntriesData[userID].Add(parentFolder);
|
||||
else
|
||||
userEntriesData.Add(userID, new List<FileEntry<T>> { parentFolder });
|
||||
userEntriesData.Add(userID, new List<FileEntry> { parentFolder });
|
||||
})
|
||||
);
|
||||
|
||||
|
||||
|
||||
if (obj.FileEntry.RootFolderType == FolderType.USER)
|
||||
{
|
||||
var folderShare = folderDao.GetFolder(GlobalFolder.GetFolderShare<T>(DaoFactory));
|
||||
{
|
||||
var folderDaoInt = DaoFactory.GetFolderDao<int>();
|
||||
var folderShare = folderDaoInt.GetFolder(GlobalFolder.GetFolderShare(DaoFactory));
|
||||
|
||||
foreach (var userID in userIDs)
|
||||
{
|
||||
var userFolderId = folderDao.GetFolderIDUser(false, userID);
|
||||
var userFolderId = GlobalFolder.GetFolderMy(this, DaoFactory);
|
||||
if (Equals(userFolderId, 0)) continue;
|
||||
|
||||
Folder<T> rootFolder = null;
|
||||
Folder<int> rootFolder = null;
|
||||
if (obj.FileEntry.ProviderEntry)
|
||||
{
|
||||
rootFolder = obj.FileEntry.RootFolderCreator == userID
|
||||
? folderDao.GetFolder(userFolderId)
|
||||
? folderDaoInt.GetFolder(userFolderId)
|
||||
: folderShare;
|
||||
}
|
||||
else if (!Equals(obj.FileEntry.RootFolderId, userFolderId))
|
||||
@ -230,7 +231,7 @@ namespace ASC.Web.Files.Utils
|
||||
if (userEntriesData.ContainsKey(userID))
|
||||
userEntriesData[userID].Add(rootFolder);
|
||||
else
|
||||
userEntriesData.Add(userID, new List<FileEntry<T>> { rootFolder });
|
||||
userEntriesData.Add(userID, new List<FileEntry> { rootFolder });
|
||||
|
||||
RemoveFromCahce(rootFolder.ID, userID);
|
||||
}
|
||||
@ -247,7 +248,7 @@ namespace ASC.Web.Files.Utils
|
||||
if (userEntriesData.ContainsKey(userID))
|
||||
userEntriesData[userID].Add(commonFolder);
|
||||
else
|
||||
userEntriesData.Add(userID, new List<FileEntry<T>> { commonFolder });
|
||||
userEntriesData.Add(userID, new List<FileEntry> { commonFolder });
|
||||
|
||||
RemoveFromCahce(GlobalFolder.GetFolderCommon(this, DaoFactory), userID);
|
||||
});
|
||||
@ -266,7 +267,7 @@ namespace ASC.Web.Files.Utils
|
||||
if (userEntriesData.ContainsKey(userID))
|
||||
userEntriesData[userID].Add(rootFolder);
|
||||
else
|
||||
userEntriesData.Add(userID, new List<FileEntry<T>> { rootFolder });
|
||||
userEntriesData.Add(userID, new List<FileEntry> { rootFolder });
|
||||
|
||||
RemoveFromCahce(rootFolder.ID, userID);
|
||||
}
|
||||
@ -277,7 +278,7 @@ namespace ASC.Web.Files.Utils
|
||||
if (userEntriesData.ContainsKey(userID))
|
||||
userEntriesData[userID].Add(obj.FileEntry);
|
||||
else
|
||||
userEntriesData.Add(userID, new List<FileEntry<T>> { obj.FileEntry });
|
||||
userEntriesData.Add(userID, new List<FileEntry> { obj.FileEntry });
|
||||
});
|
||||
}
|
||||
|
||||
@ -291,25 +292,32 @@ namespace ASC.Web.Files.Utils
|
||||
continue;
|
||||
|
||||
var entries = userEntriesData[userID].Distinct().ToList();
|
||||
|
||||
var exist = tagDao.GetNewTags(userID, entries).ToList();
|
||||
var update = exist.Where(t => t.EntryType == FileEntryType.Folder).ToList();
|
||||
update.ForEach(t => t.Count++);
|
||||
updateTags.AddRange(update);
|
||||
|
||||
entries.ForEach(entry =>
|
||||
{
|
||||
if (entry != null && exist.All(tag => tag != null && !tag.EntryId.Equals(entry.ID)))
|
||||
{
|
||||
newTags.Add(Tag.New(userID, entry));
|
||||
}
|
||||
});
|
||||
|
||||
GetNewTags(userID, entries.OfType<FileEntry<int>>().ToList());
|
||||
GetNewTags(userID, entries.OfType<FileEntry<string>>().ToList());
|
||||
}
|
||||
|
||||
if (updateTags.Any())
|
||||
tagDao.UpdateNewTags(updateTags);
|
||||
if (newTags.Any())
|
||||
tagDao.SaveTags(newTags);
|
||||
tagDao.SaveTags(newTags);
|
||||
|
||||
void GetNewTags<T1>(Guid userID, List<FileEntry<T1>> entries)
|
||||
{
|
||||
var tagDao1 = DaoFactory.GetTagDao<T1>();
|
||||
var exist = tagDao1.GetNewTags(userID, entries).ToList();
|
||||
var update = exist.Where(t => t.EntryType == FileEntryType.Folder).ToList();
|
||||
update.ForEach(t => t.Count++);
|
||||
updateTags.AddRange(update);
|
||||
|
||||
entries.ForEach(entry =>
|
||||
{
|
||||
if (entry != null && exist.All(tag => tag != null && !tag.EntryId.Equals(entry.ID)))
|
||||
{
|
||||
newTags.Add(Tag.New(userID, entry));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public void MarkAsNew<T>(FileEntry<T> fileEntry, List<Guid> userIDs = null)
|
||||
|
Loading…
Reference in New Issue
Block a user