Example #1
0
        /// <summary>
        /// Sets the value of the designated parameter using the given object.
        /// </summary>
        /// <param name="statementId">The statement id.</param>
        /// <param name="parameterIndex">the first parameter is 1, the second is 2, ...</param>
        /// <param name="value">the object containing the input parameter value</param>
        /// <exception name="EPException">if the substitution parameter could not be located</exception>
        public void SetObject(string statementId, int parameterIndex, Object value)
        {
            using (var wrapper = CreateControlManager())
            {
                WithExceptionHandling(
                    delegate
                {
                    var controlManager               = wrapper.Channel;
                    var preparedValueArgs            = new PreparedValueArgs();
                    preparedValueArgs.DataType       = value.GetType().FullName;
                    preparedValueArgs.Data           = SerializationFabric.Serialize(value);
                    preparedValueArgs.ParameterIndex = parameterIndex;

                    controlManager.SetPreparedValue(
                        _instanceId,
                        statementId,
                        preparedValueArgs);
                });
            }
        }
        /// <summary>
        /// Send an event represented by a plain object to the event stream processing
        /// runtime.
        /// </summary>
        /// <param name="obj">is the event to sent to the runtime</param>
        public void SendEvent(object obj)
        {
            if (obj == null)
            {
                throw new ArgumentNullException("obj");
            }

            // register the type just incase it hasn't been
            _administrator.RegisterType(obj.GetType());

            var eventPublisher = GetEventPublisher();
            var serialized     = SerializationFabric.Serialize(obj);
            var eventArgs      = new JsonEvent(obj.GetType().FullName, serialized);
            var eventElement   = new XElement(
                "json",
                new XElement("type", new XCData(eventArgs.EventType)),
                new XElement("data", new XCData(eventArgs.EventData)));

            eventPublisher.SendEvent(eventElement);
        }