/// <summary> /// Compare filters /// </summary> /// <param name="model"></param> /// <param name="other"></param> /// <returns></returns> public static bool IsSameAs(this AggregateFilterModel model, AggregateFilterModel other) { if (model == null && other == null) { return(true); } if (model == null || other == null) { return(false); } if (model.AggregateTypeId != other.AggregateTypeId) { return(false); } if (model.ProcessingInterval != other.ProcessingInterval) { return(false); } if (model.StartTime != other.StartTime) { return(false); } if (!model.AggregateConfiguration.IsSameAs(other.AggregateConfiguration)) { return(false); } return(true); }
/// <summary> /// Clone /// </summary> /// <param name="model"></param> /// <returns></returns> public static AggregateFilterModel Clone(this AggregateFilterModel model) { if (model == null) { return(null); } return(new AggregateFilterModel { AggregateTypeId = model.AggregateTypeId, AggregateConfiguration = model.AggregateConfiguration.Clone(), ProcessingInterval = model.ProcessingInterval, StartTime = model.StartTime }); }
/// <summary> /// Convert to stack model /// </summary> /// <param name="model"></param> /// <param name="context"></param> /// <returns></returns> public static AggregateFilter ToStackModel(this AggregateFilterModel model, ServiceMessageContext context) { if (model == null) { return(null); } return(new AggregateFilter { AggregateConfiguration = model.AggregateConfiguration.ToStackModel(), AggregateType = model.AggregateTypeId.ToNodeId(context), StartTime = model.StartTime ?? DateTime.MinValue, ProcessingInterval = model.ProcessingInterval ?? 0.0 }); }