예제 #1
0
        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;
        }
예제 #2
0
        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);
        }
예제 #3
0
        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();
        }
예제 #4
0
        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);
        }
예제 #5
0
        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();
            }
        }