private async void DeleteButton_OnClickedButton_OnClicked(object sender, EventArgs e) { var ci = CrossMultilingual.Current.CurrentCultureInfo; string confirmTitle = resmgr.Value.GetString("DeleteLocation", ci); string confirmMessage = resmgr.Value.GetString("DeleteLocationMessage", ci) + " ? "; string yes = resmgr.Value.GetString("Yes", ci); string no = resmgr.Value.GetString("No", ci); bool confirmDelete = await DisplayAlert(confirmTitle, confirmMessage, yes, no); if (confirmDelete) { _viewModel.IsBusy = true; _viewModel.EditMode = false; Models.KinaUna.Location deletedLocation = await ProgenyService.DeleteLocation(_viewModel.CurrentLocation); if (deletedLocation.LocationId == 0) { _viewModel.EditMode = false; // Todo: Show success message } else { _viewModel.EditMode = true; // Todo: Show failed message } _viewModel.IsBusy = false; } }
private async void EditButton_OnClicked(object sender, EventArgs e) { if (_viewModel.EditMode) { _viewModel.EditMode = false; _viewModel.IsBusy = true; _viewModel.IsSaving = true; DateTime locDate = new DateTime(_viewModel.DateYear, _viewModel.DateMonth, _viewModel.DateDay, _viewModel.DateHours, _viewModel.DateMinutes, 0); _viewModel.CurrentLocation.Date = locDate; _viewModel.CurrentLocation.Name = _viewModel.Name; _viewModel.CurrentLocation.StreetName = _viewModel.Street; _viewModel.CurrentLocation.HouseNumber = _viewModel.HouseNumber; _viewModel.CurrentLocation.District = _viewModel.District; _viewModel.CurrentLocation.City = _viewModel.City; _viewModel.CurrentLocation.PostalCode = _viewModel.PostalCode; _viewModel.CurrentLocation.County = _viewModel.County; _viewModel.CurrentLocation.State = _viewModel.State; _viewModel.CurrentLocation.Country = _viewModel.Country; bool latitudeParsed = double.TryParse(_viewModel.Latitude.Replace(',', '.'), NumberStyles.Any, CultureInfo.InvariantCulture, out double latitude); if (latitudeParsed) { _viewModel.CurrentLocation.Latitude = latitude; } bool longitudeParsed = double.TryParse(_viewModel.Longitude.Replace(',', '.'), NumberStyles.Any, CultureInfo.InvariantCulture, out double longitude); if (longitudeParsed) { _viewModel.CurrentLocation.Longitude = longitude; } _viewModel.CurrentLocation.Notes = _viewModel.Notes; _viewModel.CurrentLocation.Tags = TagsEntry.Text; _viewModel.CurrentLocation.AccessLevel = _viewModel.AccessLevel; // Save changes. Models.KinaUna.Location resultLocation = await ProgenyService.UpdateLocation(_viewModel.CurrentLocation); _viewModel.IsBusy = false; _viewModel.IsSaving = false; EditButton.Text = IconFont.CalendarEdit; if (resultLocation != null) // Todo: Error message if update fails. { MessageLabel.Text = "Location Item Updated"; // Todo: Translate MessageLabel.BackgroundColor = Color.DarkGreen; MessageLabel.IsVisible = true; await Reload(); } } else { EditButton.Text = IconFont.ContentSave; _viewModel.EditMode = true; _viewModel.TagsAutoSuggestList = await ProgenyService.GetTagsAutoSuggestList(_viewModel.CurrentLocation.ProgenyId, 0); } }
public LocationDetailPage(Models.KinaUna.Location locationItem) { _viewModel = new LocationDetailViewModel(); InitializeComponent(); _viewModel.CurrentLocationId = locationItem.LocationId; _viewModel.AccessLevel = locationItem.AccessLevel; _viewModel.City = locationItem.City; _viewModel.Country = locationItem.Country; _viewModel.County = locationItem.County; _viewModel.District = locationItem.District; _viewModel.HouseNumber = locationItem.HouseNumber; _viewModel.Latitude = locationItem.Latitude.ToString(CultureInfo.InvariantCulture); _viewModel.Longitude = locationItem.Longitude.ToString(CultureInfo.InvariantCulture); _viewModel.Name = locationItem.Name; _viewModel.Notes = locationItem.Notes; _viewModel.PostalCode = locationItem.PostalCode; _viewModel.State = locationItem.State; _viewModel.Street = locationItem.StreetName; _viewModel.Tags = locationItem.Tags; BindingContext = _viewModel; }