/// <summary> /// Convert to monitored item /// </summary> /// <param name="publishedEvents"></param> /// <param name="displayName"></param> /// <returns></returns> public static MonitoredItemModel ToMonitoredItem( this PublishedDataSetEventsModel publishedEvents, string displayName = null) { if (publishedEvents?.SelectedFields == null) { return(null); } return(new MonitoredItemModel { Id = publishedEvents.Id, DisplayName = displayName, EventFilter = new EventFilterModel { SelectClauses = publishedEvents.SelectedFields? .Select(s => s.Clone()) .ToList(), WhereClause = publishedEvents.Filter.Clone(), }, AggregateFilter = null, DiscardNew = publishedEvents.DiscardNew, QueueSize = publishedEvents.QueueSize, TriggerId = publishedEvents.TriggerId, MonitoringMode = publishedEvents.MonitoringMode, StartNodeId = publishedEvents.EventNotifier, RelativePath = publishedEvents.BrowsePath, AttributeId = null, DataChangeFilter = null, IndexRange = null, SamplingInterval = null }); }
/// <summary> /// Clone /// </summary> /// <param name="model"></param> /// <returns></returns> public static PublishedDataSetEventsModel Clone(this PublishedDataSetEventsModel model) { if (model == null) { return(null); } return(new PublishedDataSetEventsModel { Id = model.Id, MonitoringMode = model.MonitoringMode, TriggerId = model.TriggerId, DiscardNew = model.DiscardNew, EventNotifier = model.EventNotifier, Filter = model.Filter.Clone(), QueueSize = model.QueueSize, BrowsePath = model.BrowsePath, SelectedFields = model.SelectedFields? .Select(f => f.Clone()) .ToList() }); }