/// <summary> /// Clone /// </summary> /// <param name="model"></param> /// <returns></returns> public static MonitoredItemModel Clone(this MonitoredItemModel model) { if (model == null) { return(null); } return(new MonitoredItemModel { Id = model.Id, TriggerId = model.TriggerId, StartNodeId = model.StartNodeId, SamplingInterval = model.SamplingInterval, QueueSize = model.QueueSize, DiscardNew = model.DiscardNew, DataChangeFilter = model.DataChangeFilter.Clone(), EventFilter = model.EventFilter.Clone(), AggregateFilter = model.AggregateFilter.Clone(), AttributeId = model.AttributeId, IndexRange = model.IndexRange, MonitoringMode = model.MonitoringMode, DisplayName = model.DisplayName, RelativePath = model.RelativePath }); }
/// <summary> /// Compare items /// </summary> /// <param name="model"></param> /// <param name="other"></param> /// <returns></returns> public static bool IsSameAs(this MonitoredItemModel model, MonitoredItemModel other) { if (model == null && other == null) { return(true); } if (model == null || other == null) { return(false); } if (model.TriggerId != other.TriggerId) { return(false); } if (model.StartNodeId != other.StartNodeId) { return(false); } if (model.SamplingInterval != other.SamplingInterval) { return(false); } if (model.QueueSize != other.QueueSize) { return(false); } if (model.DiscardNew != other.DiscardNew) { return(false); } if (!model.DataChangeFilter.IsSameAs(other.DataChangeFilter)) { return(false); } if (!model.AggregateFilter.IsSameAs(other.AggregateFilter)) { return(false); } if (!model.EventFilter.IsSameAs(other.EventFilter)) { return(false); } if (model.AttributeId != other.AttributeId) { return(false); } if (model.IndexRange != other.IndexRange) { return(false); } if (model.MonitoringMode != other.MonitoringMode) { return(false); } if (model.DisplayName != other.DisplayName) { return(false); } if (!model.RelativePath.SequenceEqualsSafe(other.RelativePath)) { return(false); } return(true); }