public static void StopScheduling()
        {
            List <JobScheduler> list = new List <JobScheduler>(MailboxSyncerJobs.schedulers.Count);

            lock (MailboxSyncerJobs.syncRoot)
            {
                foreach (JobScheduler item in MailboxSyncerJobs.schedulers.Values)
                {
                    list.Add(item);
                }
                MailboxSyncerJobs.schedulers.Clear();
            }
            if (list.Count > 0)
            {
                foreach (JobScheduler jobScheduler in list)
                {
                    jobScheduler.Stop();
                }
            }
            if (SystemWorkloadManager.Status != WorkloadExecutionStatus.NotInitialized)
            {
                SystemWorkloadManager.Shutdown();
                MrsAndProxyActivityLogger.Stop();
            }
        }
 public static void StartScheduling()
 {
     SystemWorkloadManager.Initialize(MrsAndProxyActivityLogger.Start());
     MailboxSyncerJobs.GetScheduler(WorkloadType.MailboxReplicationServiceHighPriority);
     MailboxSyncerJobs.GetScheduler(WorkloadType.MailboxReplicationServiceInteractive);
     MailboxSyncerJobs.GetScheduler(WorkloadType.MailboxReplicationServiceInternalMaintenance);
     MailboxSyncerJobs.GetScheduler(WorkloadType.MailboxReplicationService);
 }
 public static void Stop()
 {
     if (MrsAndProxyActivityLogger.instance != null)
     {
         MrsAndProxyActivityLogger.InternalLogRow(MrsAndProxyActivityLogger.instance.id, "ServiceStop", null, null, null, null);
         MrsAndProxyActivityLogger.instance.Dispose();
         MrsAndProxyActivityLogger.instance = null;
     }
 }
        protected override void InternalLogActivityEvent(IActivityScope scope, ActivityEventType eventType)
        {
            List <KeyValuePair <string, object> > customData = null;

            switch (eventType)
            {
            case ActivityEventType.StartActivity:
            case ActivityEventType.ResumeActivity:
                break;

            case ActivityEventType.SuspendActivity:
            case ActivityEventType.EndActivity:
                customData = WorkloadManagementLogger.FormatWlmActivity(scope, true);
                break;

            default:
                MrsAndProxyActivityLogger.instance.SafeTraceDebug(0L, "Skip logging ActivityEvent '{0}'.", new object[]
                {
                    eventType
                });
                return;
            }
            MrsAndProxyActivityLogger.InternalLogRow(scope.ActivityId, ActivityContextLogger.ActivityEventTypeDictionary[eventType], scope.Action, scope.UserId, scope.ClientInfo, customData);
        }
 public static MrsAndProxyActivityLogger Start()
 {
     MrsAndProxyActivityLogger.instance = new MrsAndProxyActivityLogger();
     MrsAndProxyActivityLogger.InternalLogRow(MrsAndProxyActivityLogger.instance.id, "ServiceStart", null, null, null, null);
     return(MrsAndProxyActivityLogger.instance);
 }