Ejemplo n.º 1
0
        private async void OnAddPersonClickAsync(object sender, RoutedEventArgs args)
        {
            var dialog = new PersonDialog
            {
                Owner = this
            };

            dialog.ShowDialog();
            if (dialog.DialogResult == false)
            {
                return;
            }

            string city         = dialog.AddressCity;
            string country      = dialog.AddressCountry;
            string streetName   = dialog.AddressStreetName;
            byte   streetNumber = dialog.AddressStreetNumber;

            string tooltip = $"Latitude:\t\t{latestClickLocation.Latitude}\r\nLongitude:\t{latestClickLocation.Longitude}\r\n" +
                             $"Name:\t\t{dialog.PersonFirstName + " " + dialog.PersonLastName}\r\nStreet address:\t{streetName + " " + streetNumber}";

            Pushpin pin = AddPin(latestClickLocation, tooltip, Colors.Blue);

            pin.MouseLeftButtonDown += OnPersonPinClick;
            personPins.Add(pin);

            Person person = new Person()
            {
                FirstName    = dialog.PersonFirstName,
                LastName     = dialog.PersonLastName,
                City         = city,
                Country      = country,
                StreetName   = streetName,
                StreetNumber = streetNumber,
                Coordinates  = latestClickLocation
            };
            await _db.AddPersonAsync(person);

            pin.Tag         = person;
            activePinPerson = person;

            foreach (var personPin in personPins)
            {
                if (personPin == pin)
                {
                    personPin.Opacity = 1;
                }
                else
                {
                    personPin.Opacity = 0.5;
                }
            }

            foreach (var cachePin in cachePins)
            {
                cachePin.Background = colors["Red"];
            }
        }