Ejemplo n.º 1
0
        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));
            });
        }
Ejemplo n.º 2
0
        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>());
            }
        }