Exemple #1
0
        /// <summary>
        /// Метод исполнения команды.
        /// </summary>
        /// <param name="command">Команда.</param>
        public void ExecuteBlackboardCommand(Command command)
        {
            if (command == null)
            {
                return;
            }

            Exception error = null;

            if (command.CommandID == GeneralServiceCommands.UpdateEntityCollection ||
                command.CommandID == GeneralServiceCommands.UpdateEntity)
            {
                OnUpdateEntityCommand(command);
            }
            else if (command.CommandID == GeneralServiceCommands.CloseService)
            {
                Close();
            }
            else
            {
                error = new NotSupportedException(String.Format("Компонента {0} не поддерживает команду с CommandID:{1}",
                                                                BlackboardService.ServiceName, DebugNames.GetDebugName(command.CommandID)));
            }

            // если есть канал ответа - отсылаем ошибку
            if (command.ResponseChannel != null)
            {
                object data = null;
                if (error != null)
                {
                    data = new ErrorResult(BlackboardService.ServiceId, error, "Ошибка при исполнении команды в Blackboard");
                }
                command.SendResponseData(data);
            }
            else if (error != null)
            {
                throw error;
            }
        }
Exemple #2
0
        /// <summary>
        /// Метод добавления нового сыбытия.
        /// </summary>
        /// <param name="newEvent">Новое событие.</param>
        public void AddEvent(ref CoreInterfaces.Event newEvent)
        {
            try
            {
                if (!newEvent.PublishToDataBase)
                {
                    // внутреннее событие, не имеющее отражения в базе данных событий
                    return;
                }

                // добавляем событие
                AddObject(ref newEvent);
            }
            catch (Exception ex)
            {
                // записать ошибку в лог
                Logger.Error(ex, "Ошибка добавления нового события в БД. Событие: " + DebugNames.GetDebugName(newEvent.Type), ex);
            }
        }