예제 #1
0
        public override bool Equals(object obj)
        {
            if (!(obj is BacnetAddress))
            {
                return(false);
            }
            var d = (BacnetAddress)obj;

            if (adr == null && d.adr == null)
            {
                return(true);
            }
            if (adr == null || d.adr == null)
            {
                return(false);
            }
            if (adr.Length != d.adr.Length)
            {
                return(false);
            }
            if (adr.Where((t, i) => t != d.adr[i]).Any())
            {
                return(false);
            }

            // Modif FC
            if (RoutedSource == null && d.RoutedSource != null)
            {
                return(false);
            }

            // DAL
            if (RoutedDestination == null && d.RoutedDestination != null)
            {
                return(false);
            }

            if (d.RoutedSource == null && RoutedSource == null &&
                d.RoutedDestination == null && RoutedDestination == null)
            {
                return(true);
            }

            bool rv = RoutedSource?.Equals(d.RoutedSource) ?? false;

            rv |= RoutedDestination?.Equals(d.RoutedDestination) ?? false;
            return(rv);
        }
예제 #2
0
        public override bool Equals(object obj)
        {
            if (!(obj is BacnetAddress))
            {
                return(false);
            }
            var d = (BacnetAddress)obj;

            if (adr == null && d.adr == null)
            {
                return(true);
            }
            if (adr == null || d.adr == null)
            {
                return(false);
            }
            if (adr.Length != d.adr.Length)
            {
                return(false);
            }
            if (adr.Where((t, i) => t != d.adr[i]).Any())
            {
                return(false);
            }

            // Modif FC
            if ((RoutedSource == null) && (d.RoutedSource != null))
            {
                return(false);
            }

            if ((d.RoutedSource == null) && (RoutedSource == null))
            {
                return(true);
            }

            return(RoutedSource?.Equals(d.RoutedSource) ?? false);
        }