Пример #1
0
        internal void ProcessMessage(Message message)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            // service message
            switch (message.Title)
            {
            case StringConstants.SERVER_DATA_DYNAMIC:
                message.Contents = GetDynamicServerData();
                _sendClientMessage.MessageRespond(message);

                break;

            case StringConstants.SERVER_DATA_STATIC:
                message.Contents = GetStaticServerData();
                _sendClientMessage.MessageRespond(message);

                break;

            case StringConstants.LOAD_CLIENT_DETAILS:

                foreach (ServiceThread service in _registeredServices)
                {
                    service.LoadClientDetails();
                }

                message.Title    = StringConstants.LOAD_CLIENT_DETAILS_END;
                message.Contents = String.Empty;

                _sendClientMessage.MessageRespond(message);

                break;

            default:
                foreach (ServiceThread service in _registeredServices)
                {
                    try
                    {
                        using (TimedLock.Lock(_lockObject))
                        {
                            if (_eventList.ContainsKey(message.Title.ToUpper()))
                            {
                                if (_eventList.TryGetValue(message.Title.ToUpper(), out List <ServiceThread> eventListners))
                                {
                                    foreach (ServiceThread serviceThread in eventListners)
                                    {
                                        serviceThread.AddMessage(message);
                                    }
                                }
                            }
                        }
                    }
                    catch (Exception err)
                    {
                        _logging.AddToLog(err, service.ToString());
                    }
                }

                break;
            }
        }