Пример #1
0
        public List <ProcessInfo> GetProcessesInfo()
        {
            var list = new List <ProcessInfo>();

            // lock (ProcessInfoLock)
            ProcessInfoLock.AcquireReaderLock(LockTimeout);
            try
            {
                list.AddRange(Processes.Select(info =>
                                               new ProcessInfo
                {
                    Id        = info.Id,
                    UserId    = info.UserId,
                    UserName  = info.UserName,
                    StartTime = info.StartTime,
                    Duration  = DateTime.Now.Subtract(info.StartTime)
                }));
            }
            finally
            {
                ProcessInfoLock.ReleaseReaderLock();
            }

            list.ForEach(info =>
            {
                var user     = UserRepo.FindUserInfo(info.UserId);
                info.OrgName = user != null ? user.OrganizationName : "?";
            });

            return(list);
        }
Пример #2
0
        /// <summary>
        /// Получает сведения о состоянии кэша
        /// </summary>
        /// <returns>Строка описания состояния кэша</returns>
        public string GetCacheInfo()
        {
            var taskCount           = 0;
            var sessionProcessCount = 0;

            ProcessTaskLock.AcquireReaderLock(LockTimeout);
            try
            {
                taskCount = ProcessTasks.Count;
            }
            finally
            {
                ProcessTaskLock.ReleaseReaderLock();
            }
            ProcessInfoLock.AcquireReaderLock(LockTimeout);
            try
            {
                sessionProcessCount = Processes.Count;
            }
            finally
            {
                ProcessInfoLock.ReleaseReaderLock();
            }

            return(String.Format(
                       @"Кол-во классов документов: {0},
Кол-во детальных форм: {1},
Кол-во табличных форм: {2},
Кол-во действий: {3},
Кол-во процесов: {4},
Кол-во прав объектов: {5},
Кол-во прав пользователей: {6},
Кол-во списков: {7},
Кол-во пользователей: {8},
Кол-во сведений о пользователях: {9},
Кол-во организаций: {10},
Кол-во документов: {11},
Кол-во сборок: {12},
Кол-во исполняемых задач: {13},
Кол-во исполняемых сессий: {14}",
                       new object[]
            {
                DocDefRepository.DocDefCache.Count,
                FormRepository.DetailFormCache.Count,
                FormRepository.TableFormCache.Count,
                WorkflowRepository.ActivityCacheCount,
                WorkflowRepository.ProcessCacheCount,
                PermissionRepository.ObjectDefPermissionCache.Count,
                PermissionRepository.UserPermissionCache.Count,
                EnumRepository.EnumDefCache.Count,
                UserRepository.UserAccountCount,
                UserRepository.UserInfoCache.Count,
                OrgRepository.OrgInfoCache.Count,
                DocRepository.DocCache.Count,
                ScriptManager.ScriptCache.Count,
                taskCount,
                sessionProcessCount
            }
                       ));
        }