Esempio n. 1
0
 public async Task LoadAsync()
 {
     // 34
     await NavigationViewModel.LoadAsync();
 }
        private async void OpenDetailView(OpenDetailViewEventArgs args)
        {
            Int64 startTicks = Log.EVENT_HANDLER($"(CatMainViewModel) Enter Id:({args.Id}(", Common.LOG_CATEGORY);

            var detailViewModel = DetailViewModels
                                  .SingleOrDefault(vm => vm.Id == args.Id &&
                                                   vm.GetType().Name == args.ViewModelName);

            if (detailViewModel == null)
            {
                switch (args.ViewModelName)
                {
                case nameof(CatDetailViewModel):
                    detailViewModel = (IDetailViewModel)_CatDetailViewModelCreator();
                    break;

                case nameof(DogDetailViewModel):
                    detailViewModel = (IDetailViewModel)_DogDetailViewModelCreator();
                    break;

                //case nameof(MeetingDetailViewModel):
                //    detailViewModel = _meetingDetailViewModelCreator();
                //    break;

                case nameof(ToyDetailViewModel):
                    detailViewModel = _ToyDetailViewModelCreator();
                    break;

                // This should not happen anymore withe TYPEEvent
                default:
                    return;
                }

                // Verify item still exists (may have been deleted)

                try
                {
                    await detailViewModel.LoadAsync(args.Id);
                }
                catch (Exception ex)
                {
                    //MessageDialogService.ShowInfoDialog($"Cannot load the entity ({ex})" +
                    //    "It may have been deleted by another user.  Updating Navigation");

                    var message = $"Cannot load the entity ({ex})" +
                                  "It may have been deleted by another user.  Updating Navigation";

                    DialogService.Show("NotificationDialog", new DialogParameters($"message={message}"), r =>
                    {
                    });

                    await NavigationViewModel.LoadAsync();

                    return;
                }

                DetailViewModels.Add(detailViewModel);
            }

            SelectedDetailViewModel = detailViewModel;

            Log.VIEWMODEL("(CatMainViewModel) Exit", Common.LOG_CATEGORY, startTicks);
        }