/// <summary>
        /// Returns true if OgcDataStreamInfo instances are equal
        /// </summary>
        /// <param name="other">Instance of OgcDataStreamInfo to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(OgcDataStreamInfo other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     DataStreamId == other.DataStreamId ||
                     DataStreamId != null &&
                     DataStreamId.Equals(other.DataStreamId)
                     ) &&
                 (
                     MqttTopic == other.MqttTopic ||
                     MqttTopic != null &&
                     MqttTopic.Equals(other.MqttTopic)
                 ) &&
                 (
                     MqttServer == other.MqttServer ||
                     MqttServer != null &&
                     MqttServer.Equals(other.MqttServer)
                 ) &&
                 (
                     ExternalId == other.ExternalId ||
                     ExternalId != null &&
                     ExternalId.Equals(other.ExternalId)
                 ) &&
                 (
                     Metadata == other.Metadata ||
                     Metadata != null &&
                     Metadata.Equals(other.Metadata)
                 ) &&
                 (
                     SensorType == other.SensorType ||
                     SensorType != null &&
                     SensorType.Equals(other.SensorType)
                 ) &&
                 (
                     UnitOfMeasurement == other.UnitOfMeasurement ||
                     UnitOfMeasurement != null &&
                     UnitOfMeasurement.Equals(other.UnitOfMeasurement)
                 ) &&
                 (
                     fixedLatitude == other.fixedLatitude ||
                     fixedLatitude != null &&
                     fixedLatitude.Equals(other.fixedLatitude)
                 ) && (
                     fixedLongitude == other.fixedLongitude ||
                     fixedLongitude != null &&
                     fixedLongitude.Equals(other.fixedLongitude)
                     ));
        }
 /// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         // Suitable nullity checks etc, of course :)
         if (DataStreamId != null)
         {
             hashCode = hashCode * 59 + DataStreamId.GetHashCode();
         }
         if (MqttTopic != null)
         {
             hashCode = hashCode * 59 + MqttTopic.GetHashCode();
         }
         if (MqttServer != null)
         {
             hashCode = hashCode * 59 + MqttServer.GetHashCode();
         }
         if (ExternalId != null)
         {
             hashCode = hashCode * 59 + ExternalId.GetHashCode();
         }
         if (Metadata != null)
         {
             hashCode = hashCode * 59 + Metadata.GetHashCode();
         }
         if (SensorType != null)
         {
             hashCode = hashCode * 59 + SensorType.GetHashCode();
         }
         if (UnitOfMeasurement != null)
         {
             hashCode = hashCode * 59 + UnitOfMeasurement.GetHashCode();
         }
         if (fixedLatitude != null)
         {
             hashCode = hashCode * 59 + fixedLatitude.GetHashCode();
         }
         if (fixedLongitude != null)
         {
             hashCode = hashCode * 59 + fixedLongitude.GetHashCode();
         }
         return(hashCode);
     }
 }