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); }
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); }
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); }
public override Uri GetSiteUri(BusSearchParameters searchParameters) { SearchParameters requestParameters = ConvertParameters(searchParameters); return(BusApi.GetUrl(requestParameters)); }
public abstract Uri GetSiteUri(BusSearchParameters searchParameters);
public abstract bool TryFind( BusSearchParameters searchParameters, Credentials?credentialsForOrder, ref string goodResultMessage);
public override Uri GetSiteUri(BusSearchParameters searchParameters) => BusApi.GetSiteUri();