public static void MarkAsNew(FileEntry fileEntry, List <Guid> userIDs = null) { if (CoreContext.Configuration.Personal) { return; } if (fileEntry == null) { return; } userIDs = userIDs ?? new List <Guid>(); var taskData = new AsyncTaskData { FileEntry = (FileEntry)fileEntry.Clone(), UserIDs = userIDs }; if (fileEntry.RootFolderType == FolderType.BUNCH && !userIDs.Any()) { using (var folderDao = Global.DaoFactory.GetFolderDao()) { var path = folderDao.GetBunchObjectID(fileEntry.RootFolderId); var projectID = path.Split('/').Last(); if (string.IsNullOrEmpty(projectID)) { return; } } var projectTeam = Global.GetFilesSecurity().WhoCanRead(fileEntry) .Where(x => x != SecurityContext.CurrentAccount.ID).ToList(); if (!projectTeam.Any()) { return; } taskData.UserIDs = projectTeam; } lock (locker) { tasks.Add(taskData); if (!tasks.IsStarted) { tasks.Start(ExecMarkFileAsNew); } } }
public void MarkAsNew(FileEntry fileEntry, List <Guid> userIDs = null) { if (CoreBaseSettings.Personal) { return; } if (fileEntry == null) { return; } userIDs ??= new List <Guid>(); var taskData = ServiceProvider.GetService <AsyncTaskData>(); taskData.FileEntry = (FileEntry)fileEntry.Clone(); taskData.UserIDs = userIDs; if (fileEntry.RootFolderType == FolderType.BUNCH && !userIDs.Any()) { var folderDao = DaoFactory.FolderDao; var path = folderDao.GetBunchObjectID(fileEntry.RootFolderId); var projectID = path.Split('/').Last(); if (string.IsNullOrEmpty(projectID)) { return; } var projectTeam = FileSecurity.WhoCanRead(fileEntry) .Where(x => x != AuthContext.CurrentAccount.ID).ToList(); if (!projectTeam.Any()) { return; } taskData.UserIDs = projectTeam; } lock (locker) { tasks.Add(taskData); if (!tasks.IsStarted) { tasks.Start(FileMarkerHelper.ExecMarkFileAsNew); } } }
public static void MarkAsNew(FileEntry fileEntry, List <Guid> userIDs) { if (CoreContext.Configuration.Personal) { return; } if (fileEntry == null) { return; } userIDs = userIDs ?? new List <Guid>(); var taskData = new AsyncTaskData { FileEntry = (FileEntry)fileEntry.Clone(), UserIDs = userIDs }; if (fileEntry.RootFolderType == FolderType.BUNCH && !userIDs.Any()) { var projectTeam = Global.GetProjectTeam(fileEntry); if (!projectTeam.Any()) { return; } taskData.UserIDs = projectTeam.ToList(); } lock (SyncObj) { AsyncTasks.Add(taskData); if (!AsyncTasks.IsStarted) { AsyncTasks.Start(ExecMarkFileAsNew); } } }