コード例 #1
0
        public override bool TryFind(BusSearchParameters searchParameters, Credentials?credentialsForOrder, ref string goodResultMessage)
        {
            Station from;
            Station to;

            if (searchParameters.FromStation == PageViewModels.Station.Minsk)
            {
                from = BusApi.MinskStation;
                to   = BusApi.StolbtcyStation;
            }
            else
            {
                from = BusApi.StolbtcyStation;
                to   = BusApi.MinskStation;
            }

            var requestParameters = new SearchParameters(from, to, searchParameters.Date);

            if (!BusApi.GetSchedule(in requestParameters, out ReadOnlyCollection <BusInfo> schedule))
            {
                throw new NotImplementedException();
            }


            List <BusInfo> filteredBuses = FilteredBuses(schedule, searchParameters);

            if (filteredBuses.Count == 0)
            {
                return(false);
            }

            if (!credentialsForOrder.HasValue)
            {
                goodResultMessage = $"Was found at: {DateTime.Now.ToLongTimeString()}";
                return(true);
            }

            Credentials credential = credentialsForOrder.Value;
            BusInfo     targetBus  = filteredBuses[filteredBuses.Count / 2];

            BusApi.Order(targetBus, from, credential.Login, credential.Password, searchParameters.PassengersCount);
            goodResultMessage = $"Was ordered for {targetBus.Time.ToShortString()} at: {DateTime.Now.ToLongTimeString()}";
            return(true);
        }
コード例 #2
0
ファイル: AtlasBaseBusModel.cs プロジェクト: KonkLaw/Helpers
        public override bool TryFind(BusSearchParameters searchParameters, Credentials?credentialsForOrder, ref string goodResultMessage)
        {
            SearchParameters requestParameters = ConvertParameters(searchParameters);

            if (!BusApi.GetSchedule(in requestParameters, out ReadOnlyCollection <BusInfo> schedule))
            {
                throw new NotImplementedException();
            }

            List <BusInfo> filteredBuses = FilteredBuses(schedule, searchParameters);

            if (filteredBuses.Count == 0)
            {
                return(false);
            }

            goodResultMessage = $"Was found at: {DateTime.Now.ToLongTimeString()}";
            return(true);
        }
コード例 #3
0
ファイル: AtlasBaseBusModel.cs プロジェクト: KonkLaw/Helpers
        private static SearchParameters ConvertParameters(BusSearchParameters searchParameters)
        {
            Station from;
            Station to;

            if (searchParameters.FromStation == PageViewModels.Station.Minsk)
            {
                from = BusApi.MinskStation;
                to   = BusApi.StolbtcyStation;
            }
            else
            {
                from = BusApi.StolbtcyStation;
                to   = BusApi.MinskStation;
            }

            var requestParameters = new SearchParameters(@from, to, searchParameters.Date, searchParameters.PassengersCount);

            return(requestParameters);
        }
コード例 #4
0
ファイル: AtlasBaseBusModel.cs プロジェクト: KonkLaw/Helpers
        public override Uri GetSiteUri(BusSearchParameters searchParameters)
        {
            SearchParameters requestParameters = ConvertParameters(searchParameters);

            return(BusApi.GetUrl(requestParameters));
        }
コード例 #5
0
 public abstract Uri GetSiteUri(BusSearchParameters searchParameters);
コード例 #6
0
 public abstract bool TryFind(
     BusSearchParameters searchParameters,
     Credentials?credentialsForOrder,
     ref string goodResultMessage);
コード例 #7
0
 public override Uri GetSiteUri(BusSearchParameters searchParameters) => BusApi.GetSiteUri();