Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
        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);
                }
            }
        }
Exemplo n.º 3
0
        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);
                }
            }
        }