Exemplo n.º 1
0
        public async Task EditAsyncUpdatesExistingRoute()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var repository = new EfDeletableEntityRepository <Route>(new ApplicationDbContext(options.Options));

            var route = new Route
            {
                StartPoint = "Видин",
                EndPoint   = "Добрич",
                Distance   = 189,
            };

            await repository.AddAsync(route);

            await repository.SaveChangesAsync();

            var routesService = new RoutesService(repository);

            route.StartPoint = "Видин";
            route.EndPoint   = "Добрич";
            route.Distance   = 200;

            await routesService.EditAsync(route);

            var updatedRoute = repository.AllAsNoTracking().FirstOrDefault(r => r.Id == route.Id);

            Assert.Equal(route.StartPoint, updatedRoute.StartPoint);
            Assert.Equal(route.EndPoint, updatedRoute.EndPoint);
            Assert.Equal(route.Distance, updatedRoute.Distance);
        }
Exemplo n.º 2
0
        public void GetByIdReturnsRoute()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var repository = new EfDeletableEntityRepository <Route>(new ApplicationDbContext(options.Options));

            repository.AddAsync(new Route {
                StartPoint = "София", EndPoint = "Пловдив", Distance = 225
            });
            repository.AddAsync(new Route {
                StartPoint = "Варна", EndPoint = "Хасково", Distance = 341
            });
            repository.SaveChangesAsync();
            var routesService = new RoutesService(repository);

            var routeFromDb = repository.AllAsNoTracking().FirstOrDefault(r => r.StartPoint == "Варна" && r.EndPoint == "Хасково");

            var route = routesService.GetById(routeFromDb.Id);

            Assert.Equal(routeFromDb.Id, route.Id);
            Assert.Equal(routeFromDb.StartPoint, route.StartPoint);
            Assert.Equal(routeFromDb.EndPoint, route.EndPoint);
            Assert.Equal(routeFromDb.Distance, route.Distance);
        }
Exemplo n.º 3
0
        public void GetAllReturnsAllRoutesAsIQueryable()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var repository = new EfDeletableEntityRepository <Route>(new ApplicationDbContext(options.Options));

            repository.AddAsync(new Route {
                StartPoint = "София", EndPoint = "Пловдив", Distance = 225
            });
            repository.AddAsync(new Route {
                StartPoint = "София", EndPoint = "Хасково", Distance = 267
            });
            repository.AddAsync(new Route {
                StartPoint = "София", EndPoint = "Варна", Distance = 441
            });

            repository.SaveChangesAsync();

            var routesService = new RoutesService(repository);

            AutoMapperConfig.RegisterMappings(typeof(RouteViewModel).Assembly);
            var routes = routesService.GetAll <RouteViewModel>();

            Assert.Equal(3, routes.Count());
        }
Exemplo n.º 4
0
 protected TrainingBase(Route route, Action uiUpdate, Func <Task <Tuple <double, double, double?> > > currentLocationDelegate)
 {
     Route         = route;
     UiUpdate      = uiUpdate;
     GetLocation   = currentLocationDelegate;
     Points        = new List <Point>();
     CurrentTry    = new RankingRecord();
     RoutesService = new RoutesService();
 }
Exemplo n.º 5
0
        public override void Initialize()
        {
            var deviceProvider = new DeviceProvider();

            Mvx.RegisterSingleton <IDeviceProvider>(deviceProvider);

            var notificationsProvider = new NotificationsProvider();

            Mvx.RegisterSingleton <INotificationsProvider>(notificationsProvider);

            Mvx.RegisterSingleton <IUserDialogs>(UserDialogs.Instance);

            //db
            string externalDirPath     = deviceProvider.DataPath();
            string dbPath              = PortablePath.Combine(externalDirPath, FilesNames.databaseFile);
            var    dbConnectionFactory = new DbConnectionFactory(dbPath);

            Mvx.RegisterSingleton <IDbConnectionFactory>(dbConnectionFactory);

            var storageProvider = new StorageProvider(Mvx.Resolve <IDeviceProvider>(), Mvx.Resolve <IDbConnectionFactory>());

            Mvx.RegisterSingleton <IStorageProvider>(storageProvider);

            var sessionProvider = new SessionProvider(Mvx.Resolve <IStorageProvider>());

            Mvx.RegisterSingleton <ISessionProvider>(sessionProvider);

            //api interfaces
            var carrierOrdersApi = RestService.For <ICarrierOrdersApi>(sessionProvider.HttpClient);

            Mvx.RegisterSingleton <ICarrierOrdersApi>(carrierOrdersApi);

            var routesApi = RestService.For <IRoutesApi>(sessionProvider.HttpClient);

            Mvx.RegisterSingleton <IRoutesApi>(routesApi);

            var salepointOrdersApi = RestService.For <ISalepointOrdersApi>(sessionProvider.HttpClient);

            Mvx.RegisterSingleton <ISalepointOrdersApi>(salepointOrdersApi);

            //services
            var carrierOrdersService = new CarrierOrdersService(Mvx.Resolve <ICarrierOrdersApi>(), Mvx.Resolve <INotificationsProvider>());

            Mvx.RegisterSingleton <ICarrierOrdersService>(carrierOrdersService);

            var salepointOrdersService = new SalepointOrdersService(Mvx.Resolve <ISalepointOrdersApi>(), Mvx.Resolve <IStorageProvider>(), Mvx.Resolve <INotificationsProvider>());

            Mvx.RegisterSingleton <ISalepointOrdersService>(salepointOrdersService);

            var routesService = new RoutesService(Mvx.Resolve <IRoutesApi>(), Mvx.Resolve <INotificationsProvider>(), Mvx.Resolve <ISessionProvider>());

            Mvx.RegisterSingleton <IRoutesService>(routesService);

            RegisterNavigationServiceAppStart <SignInViewModel>();
        }
Exemplo n.º 6
0
        public override void Stop()
        {
            SaveCheckpointTime();
            var location = GetLocation().GetAwaiter().GetResult();

            Route.Checkpoints.Add(new Point(location.Item1, location.Item2, location.Item3, NextCheckpointIndex));

            base.Stop();

            RoutesService.CalculateRouteDistance(Route);
        }
Exemplo n.º 7
0
        protected override async void ProcessUserLocation()
        {
            var location = await GetLocation();

            var currentLocation = (new Point(location.Item1, location.Item2, Seconds));
            var distance        = Point.HaversineKilometersDistance(currentLocation, Route.Checkpoints[NextCheckpointIndex]);

            if (distance < _distanceFromCheckpointToleranceInKilometers)
            {
                NextCheckpointIndex++;

                SaveCheckpointTime();
                if (NextCheckpointIndex == Route.Checkpoints.Count)
                {
                    Stop();
                    RoutesService.ProcessCurrentTry(Route, CurrentTry);

                    _stopTrainingUi.Invoke();

                    _showProgressBar.Invoke();
                    var isSuccessful = await _routesWebRepository.CreateRankingRecordAsync(CurrentTry, Route.Id);

                    _hideProgressBar.Invoke();
                    _showIsTryUpdateSuccessful.Invoke(isSuccessful);
                }
                else
                {
                    UpdateRankingToShowPositionsForCheckpoint(NextCheckpointIndex - 1);

                    var currentPosition = GetCurrentPositionInRanking();
                    if (currentPosition == _rankingPositionOnPreviousCheckpoint || _rankingPositionOnPreviousCheckpoint == 0)
                    {
                        _playCurrentPosition.Invoke(currentPosition);
                    }
                    else
                    {
                        if (currentPosition < _rankingPositionOnPreviousCheckpoint)
                        {
                            _playPositionsEarned(_rankingPositionOnPreviousCheckpoint - currentPosition);
                        }
                        else
                        {
                            _playPositionsLost(currentPosition - _rankingPositionOnPreviousCheckpoint);
                        }
                    }

                    _rankingPositionOnPreviousCheckpoint = currentPosition;

                    _checkpointReached.Invoke();
                }
            }
        }
Exemplo n.º 8
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.route_details_filling_view);

            _routesService = new RoutesService();
            _route         = Intent.GetExtra <Route>("route");


            FindViews();
            BindData();
            LinkEventHandlers();
        }
Exemplo n.º 9
0
        public async Task CreateAsyncAddRouteToDbIfDoesNotExists()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var repository    = new EfDeletableEntityRepository <Route>(new ApplicationDbContext(options.Options));
            var routesService = new RoutesService(repository);
            await routesService.CreateAsync("Видин", "Добрич", 189);

            var routeCount = repository.AllAsNoTracking().ToList().Count();

            Assert.Equal(1, routeCount);
        }
Exemplo n.º 10
0
        public void IsExistsReturnsFalseWhenRouteDoesNotExist()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var repository = new EfDeletableEntityRepository <Route>(new ApplicationDbContext(options.Options));

            repository.AddAsync(new Route {
                StartPoint = "София", EndPoint = "Пловдив", Distance = 225
            });
            repository.AddAsync(new Route {
                StartPoint = "София", EndPoint = "Хасково", Distance = 267
            });
            repository.SaveChangesAsync();
            var routesService = new RoutesService(repository);

            var exists = routesService.IsExists("Стара Загора", "София");

            Assert.False(exists);
        }
Exemplo n.º 11
0
        public void IsExistsReturnsTrueWhenRouteExists()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var repository = new EfDeletableEntityRepository <Route>(new ApplicationDbContext(options.Options));

            repository.AddAsync(new Route {
                StartPoint = "София", EndPoint = "Пловдив", Distance = 225
            });
            repository.AddAsync(new Route {
                StartPoint = "София", EndPoint = "Хасково", Distance = 267
            });
            repository.SaveChangesAsync();
            var routesService = new RoutesService(repository);

            var route  = repository.AllAsNoTracking().FirstOrDefault(r => r.StartPoint == "София" && r.EndPoint == "Пловдив");
            var exists = routesService.IsExists(route.StartPoint, route.EndPoint);

            Assert.True(exists);
        }
Exemplo n.º 12
0
        public async Task GetByIdAsyncReturnsRoute()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var repository = new EfDeletableEntityRepository <Route>(new ApplicationDbContext(options.Options));

            await repository.AddAsync(new Route { StartPoint = "София", EndPoint = "Пловдив", Distance = 225 });

            await repository.SaveChangesAsync();

            var routesService = new RoutesService(repository);

            var route = repository.AllAsNoTracking().FirstOrDefault();

            AutoMapperConfig.RegisterMappings(typeof(RouteViewModel).Assembly);
            var currentRoute = await routesService.GetByIdAsync <RouteViewModel>(route.Id);

            Assert.Equal(route.StartPoint, currentRoute.StartPoint);
            Assert.Equal(route.EndPoint, currentRoute.EndPoint);
            Assert.Equal(route.Distance, currentRoute.Distance);
        }
Exemplo n.º 13
0
        public void GetAllReturnsAllRoutesAsCollectionOfSelectListItem()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var repository = new EfDeletableEntityRepository <Route>(new ApplicationDbContext(options.Options));

            repository.AddAsync(new Route {
                StartPoint = "София", EndPoint = "Пловдив", Distance = 225
            });
            repository.AddAsync(new Route {
                StartPoint = "София", EndPoint = "Хасково", Distance = 267
            });
            repository.AddAsync(new Route {
                StartPoint = "София", EndPoint = "Варна", Distance = 441
            });

            repository.SaveChangesAsync();

            var routesService = new RoutesService(repository);
            var routes        = routesService.GetAll();

            Assert.Equal(3, routes.Count());
        }
Exemplo n.º 14
0
        public RoutesAdapter(Context context)
        {
            _context = context;

            _routesService = new RoutesService();
        }
 public RoutesController(RoutesService routesService)
 {
     _routesService = routesService;
 }
Exemplo n.º 16
0
 public MainActivity()
 {
     _routesService = new RoutesService();
 }
Exemplo n.º 17
0
 public RoutesController(RoutesService routesService)
 {
     _routesService = routesService ?? new RoutesService();
 }