Example #1
0
        /// <summary>
        /// Существует ли стоп по направлению
        /// </summary>
        /// <param name="dc">Контекст БД</param>
        /// <param name="cityKeyFrom">КЛюч города вылета</param>
        /// <param name="cityKeyTo">Ключ города прилета</param>
        /// <param name="tourStartDate">Дата начала тура</param>
        /// <param name="tourEndDate">Дата окончания тура</param>
        /// <param name="hash">Хэш кэша</param>
        /// <returns></returns>
        public static bool IsStopByDrection(this MtSearchDbDataContext dc, int cityKeyFrom, int cityKeyTo, DateTime tourStartDate, DateTime tourEndDate, out string hash)
        {
            var result = false;

            var stopAvia = dc.GetAllStopAvia();

            hash = TableName;

            DateTime linkedDate1, linkedDate2;
            int      cityToStop, cityFromStop;

            if (tourStartDate <= tourEndDate)
            {
                linkedDate1  = tourStartDate;
                linkedDate2  = tourEndDate;
                cityToStop   = cityKeyTo;
                cityFromStop = cityKeyFrom;
            }
            else
            {
                linkedDate1  = tourEndDate;
                linkedDate2  = tourStartDate;
                cityToStop   = cityKeyFrom;
                cityFromStop = cityKeyTo;
            }

            // так как для перелетов параметры serviceDateFrom == serviceDateTo
            if (stopAvia.Any(
                    sa =>
                    sa.SA_DBEG == linkedDate1 &&
                    sa.SA_DEND == linkedDate2 &&
                    sa.SA_CTKEYFROM == cityFromStop &&
                    sa.SA_CTKEYTO == cityToStop &&
                    sa.SA_STOP == 1))
            {
                result = true;
            }

            return(result);
        }