private void InitializeCommands() { SaveVenueCommand = new RelayCommand(async () => { await Dispatcher.CurrentDispatcher.InvokeAsync(() => { foreach (var treeItemViewModel in LocationTreeViewModel) { if (!treeItemViewModel.Venues.Contains(CurrentVenueViewModel) && treeItemViewModel.LocationViewModel.LocationId == CurrentVenueViewModel.LocationViewModel.LocationId) { treeItemViewModel.Venues.Add(CurrentVenueViewModel); Messenger.Default.Send(new HideDialogMessage(Locator.VenueDialogViewModel)); break; } } }); if (DebugHelper.IsReleaseMode) await _adminAccessBll.ModifyVenueAsync(BllAccessHandler.SessionToken, CurrentVenueViewModel.ToDomainObject<Venue>()); Locator.LocationEditViewModel.IsNew = new object(); }); DeleteVenueCommand = new RelayCommand(async () => { await Dispatcher.CurrentDispatcher.InvokeAsync(() => { foreach (var treeItemViewModel in LocationTreeViewModel) { if (treeItemViewModel.Venues.Contains(CurrentVenueViewModel)) treeItemViewModel.Venues.Remove(CurrentVenueViewModel); } }); if (DebugHelper.IsReleaseMode) await _adminAccessBll.RemoveVenueAsync(BllAccessHandler.SessionToken, CurrentVenueViewModel.ToDomainObject<Venue>()); Locator.LocationEditViewModel.IsNew = new object(); }); SaveLocationCommand = new RelayCommand(async () => { await Dispatcher.CurrentDispatcher.InvokeAsync(() => { if (!LocationTreeViewModel.Contains(CurrentLocationTreeItem)) { Locations.Add(CurrentLocationTreeItem.LocationViewModel); LocationTreeViewModel.Add(CurrentLocationTreeItem); Messenger.Default.Send(new HideDialogMessage(Locator.LocationDialogViewModel)); } }); if (DebugHelper.IsReleaseMode) await _adminAccessBll.ModifyLocationAsync(BllAccessHandler.SessionToken, CurrentLocationTreeItem.LocationViewModel.ToDomainObject<Location>()); Locator.LocationEditViewModel.IsNew = new object(); }); DeleteLocationCommand = new RelayCommand(async () => { await Dispatcher.CurrentDispatcher.InvokeAsync(async () => { var curLocationItem = CurrentLocationTreeItem; foreach (var venue in curLocationItem.Venues) { if (DebugHelper.IsReleaseMode) await _adminAccessBll.RemoveVenueAsync(BllAccessHandler.SessionToken, venue.ToDomainObject<Venue>()); } curLocationItem.Venues.Clear(); LocationTreeViewModel.Remove(curLocationItem); if (DebugHelper.IsReleaseMode) await _adminAccessBll.RemoveLocationAsync(BllAccessHandler.SessionToken, curLocationItem.LocationViewModel.ToDomainObject<Location>()); Locator.LocationEditViewModel.IsNew = new object(); }); }); NewLocationCommand = new RelayCommand(() => { CurrentLocationTreeItem = new LoctionTreeItemViewModel(new List<VenueViewModel>()) { LocationViewModel = new LocationViewModel() }; Locator.LocationEditViewModel.IsNew = null; Messenger.Default.Send(new ShowDialogMessage(Locator.LocationDialogViewModel)); }); NewVenueCommand = new RelayCommand(() => { CurrentVenueViewModel = new VenueViewModel(); Locator.LocationEditViewModel.IsNew = null; Messenger.Default.Send(new ShowDialogMessage(Locator.VenueDialogViewModel)); }); }
public async Task InitializeData() { LocationPage.ToFullRange(); var locations = await _viewAccessBll.GetLocationsAsync(LocationPage); if (locations == null) return; VenuePage.ToFullRange(); var venueList = ProxyHelper.ToListOf<Venue, VenueViewModel>(await _viewAccessBll.GetVenuesAsync(VenuePage)); if (venueList == null) return; foreach (var location in locations) { var venues = venueList.Where(v => v.Location.LocationId == location.LocationId); var locationTreeItem = new LoctionTreeItemViewModel(venues.ToList()) { LocationViewModel = location.ToViewModelObject<LocationViewModel>() }; LocationTreeViewModel.Add(locationTreeItem); Locations.Add(location.ToViewModelObject<LocationViewModel>()); } }