Esempio n. 1
0
        public BaseFindableObject(BaseFindableObject obj)
        {
            if (obj == null)
            {
                return;
            }

            Street      = obj.Street;
            HouseNumber = obj.HouseNumber;
        }
Esempio n. 2
0
        /// <summary>
        ///     Ищет совпадение по объектам
        /// </summary>
        /// <param name="obj">Объект, с которым сверяем</param>
        /// <returns></returns>
        public bool IsTheSameObject(BaseFindableObject obj)
        {
            if (obj == null)
            {
                return(false);
            }

            if (!TheSameStreet(obj.Street))
            {
                return(false);
            }

            // они дожны быть точными, инчае можем найти совпадения.
            // например, 1 и 1к2
            return(HouseNumber == obj.HouseNumber);
        }
Esempio n. 3
0
        /// <summary>
        ///     Возвращает тот же дом, только не учитывает корпус
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="findCondition">Условия поиска</param>
        /// <returns></returns>
        public bool TheSameHouse(BaseFindableObject obj,
                                 ReturnConditions findCondition)
        {
            // нет объекта, ошибка
            if (obj == null)
            {
                return(false);
            }

            // улицы разные
            if (!TheSameStreet(obj.Street))
            {
                return(false);
            }

            // нашли номера домов
            var number    = new HouseNumber(HouseNumber);
            var objNumber = new HouseNumber(obj.HouseNumber);

            // разные номера, выходим
            if (number.Number != objNumber.Number)
            {
                return(false);
            }

            // нужно сравнить слеши
            if ((findCondition & ReturnConditions.CompareSlash) == ReturnConditions.CompareSlash &&
                number.AfterSlash != objNumber.AfterSlash)
            {
                return(false);
            }

            // возвращаем что угодно
            if ((findCondition & ReturnConditions.All) == ReturnConditions.All)
            {
                return(true);
            }

            // сравниваем значения
            var compare = number.Housing.CompareTo(objNumber.Housing);

            // возвращаем, если стоит включать себя
            if (compare == 0 && (findCondition & ReturnConditions.Self) == ReturnConditions.Self)
            {
                return(true);
            }

            // нашли меньше
            if (compare < 0 && (findCondition & ReturnConditions.LessThen) == ReturnConditions.LessThen)
            {
                return(true);
            }

            // нашли больше
            if (compare > 0 && (findCondition & ReturnConditions.MoreThen) == ReturnConditions.MoreThen)
            {
                return(true);
            }

            return(false);
        }