public async Task Reload(bool showLoading = true) { if (showLoading) { IsBusy = true; } Trace.Write("Reloading stop data"); try { var response = await BusStopService.GetStopDetails(Item); if (response != null) { LastUpdated = DateTime.Now; LiveRoutes.ReplaceRange(response.Stops.First(s => s.Id == Item.Id).Routes); } IsOffline = response == null; } catch (Exception ex) { LogHelper.Error <StopsListViewModel>(ex); IsOffline = true; } IsBusy = false; }
public void Setup() { var repository = new BusStopRepository(Context); var repositoryEmpty = new BusStopRepository(ContextEmpty); var service = new BusStopService(repository, Mapper); var serviceEmpty = new BusStopService(repositoryEmpty, Mapper); _busStopsController = new BusStopsController(service); _busStopsControllerEmpty = new BusStopsController(serviceEmpty); }
public async Task Favorite() { Item.Data.IsFavorite = !Item.Data.IsFavorite; MessagingCenter.Send(new BusStopFavorited { BusStopId = Item.Id, IsFavorite = Item.Data.IsFavorite }, "BusStopFavorited"); await BusStopService.SaveChanges(); }
static async void ConfigureUpdateDataService() { var documentStoreRepository = new DocumentStoreRepository(); var publicTransportRepository = new PublicTransportRepository(); UpdateDataService.DocumentStoreRepository = documentStoreRepository; var delayJsonService = new DelayJsonService(publicTransportRepository); DelaysHub.DelayService = new DelayService(delayJsonService); DelayService.DocumentStoreRepository = documentStoreRepository; var timeService = new DCNC.Service.PublicTransport.Time.TimeService(); var stopComparer = new StopComparer(); var combineHelper = new CombineHelper(stopComparer); var combiner = new Combiner(combineHelper); var combineTripService = new CombineTripService(combiner); var joinTripMappingService = new JoinTripMappingService(); var organizer = new Organizer(); var stopHelper = new StopHelper(); var tripsWithBusStopsService = new TripsWithBusStopsService(organizer, stopHelper); var joiner = new Joiner(combineTripService, joinTripMappingService, tripsWithBusStopsService); var grouper = new Grouper(); var tripService = new TripService(documentStoreRepository, publicTransportRepository); var busStopService = new BusStopService(documentStoreRepository, publicTransportRepository); var busLineService = new BusLineService(documentStoreRepository, publicTransportRepository); var expeditionService = new ExpeditionService(documentStoreRepository, publicTransportRepository); var stopInTripService = new StopInTripService(documentStoreRepository, publicTransportRepository); var busStopModelService = new BusStopModelService(); var updateServiceHelper = new UpdateServiceHelper(joiner, grouper, timeService, tripService, busStopService, busLineService, expeditionService, stopInTripService, busStopModelService, documentStoreRepository); documentStoreRepository.DeleteAllTimeTableJsons(); await UpdateDataService.Init(timeService, updateServiceHelper); ConfigureServices(documentStoreRepository, publicTransportRepository); }
public async Task LoadItems() { Trace.WriteLine("Loading Items"); if (IsBusy || Application.Current == null) { return; } IsBusy = true; try { var items = await BusStopService.GetStops( () => LoadingStopsFromApi = true ); LoadingStopsFromApi = false; AllStops.ReplaceRange(items.Stops); await ReloadLocation(); } catch (Exception ex) { Trace.Write(ex.ToString()); // Message maybe? MessagingCenter.Send(new MessagingCenterAlert { Title = "Error", Message = "Unable to load items.", Cancel = "OK" }, "message"); } finally { Device.BeginInvokeOnMainThread(() => IsBusy = false); UpdateStops(); } }