예제 #1
1
 public MapsScreen(MainFrame mainFrame)
 {
     this.MainFrame = mainFrame;
     InitializeComponent();
     _controller = new MapsController(this);
 }
예제 #2
0
        public void GetMapPoints_ItemIdPassed_ShouldCallRepositoryWithItem(IMapPointRepository mapPointRepository, [FakeDb.AutoFixture.Content] Data.Items.Item item)
        {
            var controller = new MapsController(mapPointRepository);

            controller.GetMapPoints(item.ID.Guid);
            mapPointRepository.GetAll(item).ReceivedWithAnyArgs(1);
        }
예제 #3
0
        public static MapsController BuildController()
        {
            var repository = new Mock <IRepository <GameMapModel> >();

            repository.Setup(x => x.GetAsync())
            .Returns(Task.FromResult(
                         new List <GameMapModel> {
                new GameMapModel {
                    Id = "1", Size = 10
                },
                new GameMapModel {
                    Id = "2", Size = 10
                },
            }));

            repository.Setup(x => x.GetByIdAsync(It.Is <string>(s => s == "1")))
            .Returns(Task.FromResult(
                         new GameMapModel {
                Id = "1", Size = 10
            }));

            var controller = new MapsController(
                repository.Object);

            return(controller);
        }
예제 #4
0
        public async void AddPinsToMap()
        {
            MapsController.CustomPins.Clear();

            foreach (EcoPoint ecoPoint in _EcoPoints)
            {
                try {
                    string materials = "";
                    foreach (Material material in ecoPoint.MaterialsAccepted)
                    {
                        materials += material.Name + ", ";
                    }

                    MapsController.AddPin(await MapsController.GetLocationFromAddress($"{ecoPoint.Address.AddressStreet} - {ecoPoint.Address.Number}, {ecoPoint.Address.Complement} - {ecoPoint.Address.District}, {ecoPoint.Address.City} - {ecoPoint.Address.State}"),
                                          $"{ecoPoint.Name}", $"{ecoPoint.Address.AddressStreet} - {ecoPoint.Address.Number}, {ecoPoint.Address.Complement} - {ecoPoint.Address.District}\n{ecoPoint.Description}\n{materials}");
                } catch { }
            }

            foreach (Pin pin in MapsController.CustomPins)
            {
                try { MapsController.CustomMap.Pins.Add(pin); } catch { }
                pin.Clicked += (sender, e) => {
                    DisplayAlert(pin.Label, pin.Address, "Fechar");
                };
            }
        }
예제 #5
0
        public void Run_Cmd_Should_Return_Complete_Map()
        {
            var mapsController = new MapsController();
            var result         = mapsController.Run_cmd(ScriptPath, "");

            Assert.AreEqual(result.Length, 448);
        }
예제 #6
0
	/**
	 * Runs at load time
	 */
	void Start () {
		gameController = GameController.S;
		mapsController = MapsController.S;
		resourceTileController = ResourceTileController.S;
		unitsController = UnitsController.S;

		tilesCollection = Tiles.S;
	}
예제 #7
0
    public void GetMapPoints_ItemIdPassed_PointsReturnedFormRepo(IMapPointRepository mapPointRepository, Db db, MapPoint[] points,[FakeDb.AutoFixture.Content]Data.Items.Item item)
    {
      mapPointRepository.GetAll(null).ReturnsForAnyArgs(points);

      var controller = new MapsController(mapPointRepository);
      var actualPoints = controller.GetMapPoints(item.ID.Guid).Data as IEnumerable<MapPoint>;
      actualPoints.ShouldBeEquivalentTo(points);
    }
예제 #8
0
        public void Level_Should_Return_Complete_Map()
        {
            var mapsController = new MapsController();
            var actionResult   = mapsController.Level();
            var result         = actionResult as OkNegotiatedContentResult <string>;

            Assert.AreEqual(result.Content.Length, 448);
        }
예제 #9
0
	/**
	 * Runs at load time
	 */
	void Start () {
		playersCollection = Players.S;

		gameController = GameController.S;
		mapsController = MapsController.S;
		networkController = NetworkController.S;
		uiController = UIController.S;
		unitsController = UnitsController.S;
	}
예제 #10
0
        public void GetMapPoints_ItemIdPassed_PointsReturnedFormRepo(IMapPointRepository mapPointRepository, Db db, MapPoint[] points, [FakeDb.AutoFixture.Content] Data.Items.Item item)
        {
            mapPointRepository.GetAll(null).ReturnsForAnyArgs(points);

            var controller   = new MapsController(mapPointRepository);
            var actualPoints = controller.GetMapPoints(item.ID.Guid).Data as IEnumerable <MapPoint>;

            actualPoints.ShouldBeEquivalentTo(points);
        }
예제 #11
0
        public async void InitializePage()
        {
            try {
                await MapsController.InstantiateNewMap(MapRegion);

                _EcoPoints = await EcoPointController.GetAllAPI();

                AddPinsToMap();
            }
            catch { await DisplayAlert("Ocorreu um erro ao tentar obter os dados do mapa!", "Tente novamente mais tarde!", "Ok"); }
        }
예제 #12
0
	/**
	 * Runs at load time
	 */
	void Start () {
		disabledTileController = DisabledTileController.S;
		gameController = GameController.S;
		highlightsController = HighlightsController.S;
		mapsController = MapsController.S;
		movementController = MovementController.S;
		playerController = PlayerController.S;
		resourceTileController = ResourceTileController.S;
		remoteCamera = RemoteCamera.S;
		tilesController = TilesController.S;
		unitsController = UnitsController.S;
	}
예제 #13
0
	/**
	 * Runs at load time
	 */
	void Start () {
		gameController = GameController.S;
		mapsController = MapsController.S;
		movementController = MovementController.S;
		playerController = PlayerController.S;
		remoteCamera = RemoteCamera.S;

		unitTypesCollection = UnitTypes.S;

		playerUnitCounts = new Dictionary<string, int>[4];

		// Copy the settings from the parent unit types to the faction units
		propagateOptions ();
	}
예제 #14
0
	/**
	 * Runs at load time
	 */
	void Start () {
		battleController = BattleController.S;
		disabledTileController = DisabledTileController.S;
		gameController = GameController.S;
		highlightsController = HighlightsController.S;
		mapsController = MapsController.S;
		movementController = MovementController.S;
		navController = NavController.S;
		playerController = PlayerController.S;
		resourceTileController = ResourceTileController.S;
		tilesController = TilesController.S;
		turnsController = TurnsController.S;
		unitsController = UnitsController.S;
	}
예제 #15
0
	/**
	 * Runs at load time
	 */
	void Start () {
//		disabledTileController = DisabledTileController.S;
//		gameController = GameController.S;
//		highlightsController = HighlightsController.S;
		mapsController = MapsController.S;
//		movementController = MovementController.S;
//		navController = NavController.S;
//		playerController = PlayerController.S;
//		resourceTileController = ResourceTileController.S;
//		remoteCamera = RemoteCamera.S;
		tilesController = TilesController.S;
//		turnsController = TurnsController.S;
//		uiController = UIController.S;
		unitsController = UnitsController.S;
	}
예제 #16
0
        /// <summary>
        /// This method is called whenever a user clicks on a pin. It calls the PCL method
        /// that opens the location details page.
        /// </summary>
        /// <param name="sender">A GoogleMap object</param>
        /// <param name="e">A click event</param>
        void OnInfoWindowClick(object sender, GoogleMap.InfoWindowClickEventArgs e)
        {
            if (MapsController.isClickEnabled())
            {
                var customPin = GetCustomPin(e.Marker);

                if (customPin != null)
                {
                    if (!string.IsNullOrWhiteSpace(customPin.id))
                    {
                        var id = customPin.id;
                        formsMap.openSelectedLocactionDetails(id);
                    }
                }
            }
        }
예제 #17
0
	protected MapsController mapsController = null; //!< The local reference to the maps controller
	#endregion

	#region /// @name Unity methods
	/**
	 * Runs at load time
	 */
	void Start () {
		mapsController = MapsController.S;
	}
	/**
	 * Runs at load time
	 */
	void Start () {
		mapsController = MapsController.S;
		playerController = PlayerController.S;
		turnsController = TurnsController.S;
	}
예제 #19
0
        public async Task <BorderCrossObject> GetBorderCrossTime(Location start, Location finish, List <Location> section, int insertAt)
        {
            if (finish.InboundTravelType == TravelType.PLANE)
            {
                return(new BorderCrossObject {
                    IncrementBy = 0, CrossedAt = start.DepartureTime.Value + start.DepartureDate.Value
                });
            }
            else if (finish.InboundTravelType == TravelType.CAR || finish.InboundTravelType == TravelType.PUBLIC_TRANSPORT || finish.InboundTravelType == TravelType.BOAT)
            {
                long departure = start.DepartureDate.Value + start.DepartureTime.Value;
                long arrival   = finish.ArrivalDate.Value + finish.ArrivalTime.Value;

                if (arrival <= departure)
                {
                    return(null);
                }

                string departureId = start.City.GooglePlaceId;
                string arrivalId   = finish.City.GooglePlaceId;

                HttpClient          c   = new HttpClient();
                string              key = System.IO.File.ReadAllText(Path.GetFullPath("~/../Assets/api_key.txt").Replace("~\\", ""));
                HttpResponseMessage m;
                try
                {
                    m = await c.GetAsync("https://maps.googleapis.com/maps/api/directions/json?origin=place_id:" + departureId + "&destination=place_id:" + arrivalId + "&key=" + key);
                }
                catch (HttpRequestException e)
                {
                    return(null);
                }

                string response = await m.Content.ReadAsStringAsync();

                MapParent d = Newtonsoft.Json.JsonConvert.DeserializeObject <MapParent>(response);

                if (d.Routes == null || d.Routes.Length == 0)
                {
                    return(new BorderCrossObject {
                        IncrementBy = 0, CrossedAt = -1
                    });
                }

                MapLeg[] legs = d.Routes[0].Legs;

                //Checking if there is more than one border cross
                int crosses = 0;
                //Count the looped seconds
                long          counter            = 0;
                List <long>   durations          = new List <long>();
                long          totalTripMapLength = 0;
                List <string> countries          = new List <string>();
                for (var i = 0; i < legs.Length; i++)
                {
                    totalTripMapLength += Convert.ToInt64(legs[i].Duration.Value);

                    for (var j = 0; j < legs[i].Steps.Length; j++)
                    {
                        counter += Convert.ToInt32(legs[i].Steps[j].Duration.Value);

                        if (legs[i].Steps[j].Html_Instructions.Contains("Entering ") && !legs[i].Steps[j].Html_Instructions.Contains("Entering toll zone"))
                        {
                            crosses++;
                            durations.Add(counter);
                            countries.Add(legs[i].Steps[j].Html_Instructions.Split("Entering ")[1].Split('<')[0]);
                        }
                    }
                }

                double ratio = Convert.ToDouble(totalTripMapLength * 1000) / Convert.ToDouble(arrival - departure);

                for (var i = 0; i < countries.Count; i++)
                {
                    countries[i] = MapsController.FixCountryNames(countries[i]);
                }

                if (countries.Count > 1)
                {
                    ICityDbProvider cityDbProvider = ObjectContainer.GetCityDbProvider();

                    for (var i = countries.Count - 2; i >= 0; i--)
                    {
                        City city = new City {
                            Country = cityDbProvider.GetCountryByName(countries[i]), Name = "Transit_Country", CountryID = cityDbProvider.GetCountryByName(countries[i]).ID
                        };

                        double transitPointDateTime = start.DepartureDate.Value + start.DepartureTime.Value + durations[i] * 1000 / ratio;

                        long transitPointTime = Convert.ToInt64(transitPointDateTime % (60000 * 60 * 24));
                        long transitPointDate = Convert.ToInt64(transitPointDateTime - transitPointTime);

                        section.Insert(insertAt, new Location {
                            City = city, Transit = true, ArrivalDate = transitPointDate, ArrivalTime = transitPointTime, DepartureDate = transitPointDate, DepartureTime = transitPointTime, InboundTravelType = TravelType.CAR
                        });
                        section.Insert(insertAt, new Location {
                            IsCrossing = true, CrossedBorder = true, Transit = false, CrossedAtDate = transitPointDate, CrossedAtTime = transitPointTime
                        });
                    }

                    //Make sure to save the trip!
                }
                //Done checking if there is more than one border cross

                for (var i = 0; i < section.Count; i++)
                {
                    section[i].Position = i;
                }

                return(new BorderCrossObject
                {
                    IncrementBy = (countries.Count - 1) * 2,
                    CrossedAt = start.DepartureDate.Value + start.DepartureTime.Value + Convert.ToInt64(durations[durations.Count - 1] * 1000 / ratio)
                });
            }
            else
            {
                return(null);
            }
        }
예제 #20
0
	private TilesController tilesController = null; //!< The local reference to the TilesController
	#endregion

	#region /// @name Unity methods
	/**
	 * Called when the script is loaded, before the game starts
	 */
	void Awake () {
		S = this;
	}
예제 #21
0
 public void GetMapPoints_ItemIdPassed_ShouldCallRepositoryWithItem(IMapPointRepository mapPointRepository, [FakeDb.AutoFixture.Content]Data.Items.Item item)
 {
   var controller = new MapsController(mapPointRepository);
   controller.GetMapPoints(item.ID.Guid);
   mapPointRepository.GetAll(item).ReceivedWithAnyArgs(1);
 }
	/**
	 * Runs at load time
	 */
	void Start () {
		mapsController = MapsController.S;
		movementController = MovementController.S;
	}