/// <summary>
 /// Clone
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public static DataChangeFilterModel Clone(this DataChangeFilterModel model)
 {
     if (model == null)
     {
         return(null);
     }
     return(new DataChangeFilterModel {
         DataChangeTrigger = model.DataChangeTrigger,
         DeadBandType = model.DeadBandType,
         DeadBandValue = model.DeadBandValue
     });
 }
 /// <summary>
 /// Convert to stack model
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public static DataChangeFilter ToStackModel(this DataChangeFilterModel model)
 {
     if (model == null)
     {
         return(null);
     }
     return(new DataChangeFilter {
         DeadbandValue = model.DeadBandValue ?? 0.0,
         DeadbandType = (uint)model.DeadBandType.ToStackType(),
         Trigger = model.DataChangeTrigger.ToStackType()
     });
 }
 /// <summary>
 /// Compare filters
 /// </summary>
 /// <param name="model"></param>
 /// <param name="other"></param>
 /// <returns></returns>
 public static bool IsSameAs(this DataChangeFilterModel model, DataChangeFilterModel other)
 {
     if (model == null && other == null)
     {
         return(true);
     }
     if (model == null || other == null)
     {
         return(false);
     }
     if (model.DataChangeTrigger != other.DataChangeTrigger)
     {
         return(false);
     }
     if (model.DeadBandType != other.DeadBandType)
     {
         return(false);
     }
     if (model.DeadBandValue != other.DeadBandValue)
     {
         return(false);
     }
     return(true);
 }