private void Initialize(
     BM.ErrorManagement configuration,
     SyncOrchestrator syncOrchestrator)
 {
     m_errRegService    = new ErrorRegistrationService(configuration.ErrorRouters);
     m_routingAlgorithm = new ErrorRoutingAlgorithm(m_errRegService, configuration.ReportingSettings, syncOrchestrator);
     m_syncOrchestrator = syncOrchestrator;
 }
        /// <summary>
        /// Create and initialize the singleton intance of ErrorManager
        /// </summary>
        /// <param name="configuration"></param>
        /// <param name="syncOrchestrator"></param>
        /// <returns></returns>
        public static ErrorManager CreateSingletonInstance(
            Guid sessionGroupUniqueId,
            BM.ErrorManagement configuration,
            SyncOrchestrator syncOrchestrator)
        {
            lock (m_lockOnPerGroupSingletonInstances)
            {
                var newInstance = new ErrorManager(configuration, syncOrchestrator);
                if (s_singletonInstances.ContainsKey(sessionGroupUniqueId))
                {
                    s_singletonInstances.Remove(sessionGroupUniqueId);
                }

                s_singletonInstances.Add(sessionGroupUniqueId, newInstance);
                return(s_singletonInstances[sessionGroupUniqueId]);
            }
        }
 internal ErrorManager(
     BM.ErrorManagement configuration,
     SyncOrchestrator syncOrchestrator)
 {
     Initialize(configuration, syncOrchestrator);
 }