Esempio n. 1
0
 public static TopicFilterExpression CreateFilter(TopicExpressionFilter filtr)
 {
     return(new TopicFilterExpression()
     {
         currentType = ftype.TOPIC,
         Value = filtr.expression,
         Dialect = filtr.dialect,
         Namespaces = filtr.namespaces
     });
 }
		public static TopicFilterExpression CreateFilter(TopicExpressionFilter filtr) {
			return new TopicFilterExpression() {
				currentType = ftype.TOPIC,
				Value = filtr.expression,
				Dialect = filtr.dialect,
				Namespaces = filtr.namespaces
			};
		}
		public ExpressionArguments(string[] messageContentFilterDialects,
			MessageContentFilter[] messageContentFilters,
			string[] topicExpressionDialects,
			TopicExpressionFilter[] topicExpressionFilters,
			TopicSetType topicSet, Dictionary<string, string> namespaces) {

			this.messageContentFilterDialects = messageContentFilterDialects;
			this.messageContentFilters = messageContentFilters;
			this.topicExpressionDialects = topicExpressionDialects;
			this.topicExpressionFilters = topicExpressionFilters;
			this.topicSet = topicSet;
			this.namespaces = namespaces;

		}
		void SubscribeBase(OdmSession facade, MessageContentFilter[] contArray, TopicExpressionFilter[] topArray) {
			EventSubscriptions.Add(
					 facade.GetBaseEvents(AppDefaults.visualSettings.Base_Subscription_Port, topArray, contArray).Subscribe(
						  onvifEvent => {
							  try {
								  dispatch.BeginInvoke(() => {
									  var evdescr = new EventDescriptor(onvifEvent);
									  events.AddEvent(evdescr);
									  eventAggregator.GetEvent<DeviceEventReceived>().Publish(new DeviceEventArgs("", evdescr));
								  });
							  } catch (Exception err) {
								  dbg.Error(err);
							  }
						  }, err => {
							  dbg.Error(err);
							  dispatch.BeginInvoke(() => {
								  var evdescr = new EventDescriptor(null);
								  evdescr.ErrorMessage = err.Message;
								  events.AddEvent(evdescr);
								  eventAggregator.GetEvent<DeviceEventReceived>().Publish(new DeviceEventArgs("", evdescr));
							  });
						  }
					 )
				);
		}