public void SwitchServiceBus(string serviceBus, string version, string queueType) { StopMonitoring(); _mgr.Terminate(); if (!_serviceBusHistory.Any(s => s.Name == serviceBus && s.Version != version)) { CreateServiceBusManager(serviceBus, version, queueType); } else { throw new RestartRequiredException(); } _serviceBusHistory.Add(ServiceBusInfo.Create(serviceBus, version, queueType)); }
private void CreateServiceBusManager(string serviceBus, string version, string queueType) { _mgr = ServiceBusFactory.CreateManager(serviceBus, version, queueType); _mgr.ErrorOccured += System_ErrorOccured; _mgr.WarningOccured += System_WarningOccured; _mgr.ItemsChanged += System_ItemsChanged; var cmdSender = (_mgr as ISendCommand); if (cmdSender != null) { cmdSender.CommandContentFormat = Config.CurrentServer.CommandContentType; } lock (_itemsLock) _items.Clear(); _mgr.Initialize(Config.CurrentServer.ConnectionSettings, Config.MonitorQueues.Select(mq => new Queue(mq.Name, mq.Type, mq.Color)).ToArray(), _monitorState); CanSendCommand = (_mgr as ISendCommand) != null; CanViewSubscriptions = (_mgr as IViewSubscriptions) != null; _serviceBusHistory.Add(ServiceBusInfo.Create(serviceBus, version, queueType)); }