private async void OnGoToMainPageExecute() { //await _mainViewModel.LoadAsync(); _mainViewModel.Load(); if (App.Current.Windows.OfType <MainWindow>().FirstOrDefault() is MainWindow) { App.Current.Windows.OfType <MainWindow>().FirstOrDefault().Main.Content = new DrivePage(_mainViewModel); } else { await _messageDialogService.ShowInfoDialogAsync("Ошибка"); } }
private async void OnOpenDetailView(OpenDetailViewEventArgs args) { var detailViewModel = DetailViewModels .SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); if (detailViewModel == null) { detailViewModel = _detailViewModelCreator[args.ViewModelName]; try { await detailViewModel.LoadAsync(args.Id); } catch { await _messageDialoService.ShowInfoDialogAsync("Невозможно загрузить элемент,возможно он был удален.", "АХТУНГ"); await NavigationViewModel.LoadAsync(); return; } DetailViewModels.Add(detailViewModel); } SelectedDetailViewModel = detailViewModel; }
private async void OnOpenDetailView(OpenDetailViewEventArgs args) // when user clicked an item in the navigation this method is called { //it is not a good idea to use MessageBox directly in our viewmodel as this would block unit test on this method var detailViewModel = DetailViewModels .SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); if (detailViewModel == null) { detailViewModel = _detailViewModelCreator[args.ViewModelName]; try { await detailViewModel.LoadAsync(args.Id); } catch (Exception ex) { await _messageDialogService.ShowInfoDialogAsync("Could not load the entity, maybe it was deleted in the meantime" + " by another user. The navigation is refreshed for you."); await NavigationViewModel.LoadAsync(); return; } DetailViewModels.Add(detailViewModel); } SelectedDetailViewModel = detailViewModel; }
private async void OnOpenDetailView(OpenDetailViewEventArgs args) { var detailViewModel = DetailViewModels .SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); if (detailViewModel == null) { detailViewModel = _detailViewModelCreator[args.ViewModelName]; try { await detailViewModel.LoadAsync(args.Id); } catch { await _messageDialogService.ShowInfoDialogAsync("Записът не може да бъде зареден." + " Може би вече е изтрит от друг потребител. Наигационното меню ще бъде презаредено."); await NavigationViewModel.LoadAsync(); return; } DetailViewModels.Add(detailViewModel); } SelectedDetailViewModel = detailViewModel; }
private async void OnOpenDetailView(OpenDetailViewEventArgs args) { var detailViewModel = DetailViewModels .SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); if (detailViewModel == null) { detailViewModel = _detailViewModelCreator[args.ViewModelName]; try { await detailViewModel.LoadAsync(args.Id); } catch { await _messageDialogService.ShowInfoDialogAsync("Невозможно загрузить данные," + "возможно сущность данные были удалены другим пользователем."); await NavigationViewModel.LoadAsync(); return; } DetailViewModels.Add(detailViewModel); } SelectedDetailViewModel = detailViewModel; }
/// <summary> /// /// </summary> /// <param name="AFriendId"></param> private async void OnOpenDetailViewEvent(OpenDetailViewEventArgs args) { var detailViewModel = DetailViewModels .SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); if (detailViewModel == null) { detailViewModel = _detailViewModelCreator[args.ViewModelName]; try { await detailViewModel.LoadAsync(args.Id); } catch { await _messageDialogService.ShowInfoDialogAsync($"Could not load the entity, maybe it was deleted in the meantime by other user. The navigation is refreshed for you"); await NavigationViewModel.LoadAsync(); return; } DetailViewModels.Add(detailViewModel); SelectedDetailViewModel = detailViewModel; } else { SelectedDetailViewModel = _detailViewModelCreator[args.ViewModelName]; } }
protected async Task SaveWithOptimisticConcurrencyASync(Func <Task> saveFunc, Action afterSaveAction) { try { await saveFunc(); } catch (DbUpdateConcurrencyException ex) { var databaseValues = ex.Entries.Single().GetDatabaseValues(); if (databaseValues == null) { await MessageDialogService.ShowInfoDialogAsync("The entity has been deleted by another user"); RaiseDetailDeletedEvent(Id); return; } var result = await MessageDialogService.ShowOkCancelDialogAsync("The entity has been changed in " + "the meantime by someone else. Click OK to asve your changes anyway, click Cancel " + "to reload the entity from the database.", "Question"); if (result == MessageDialogResult.OK) { // Update the original values with database-values var entry = ex.Entries.Single(); entry.OriginalValues.SetValues(entry.GetDatabaseValues()); await saveFunc(); } else { // Reload entity from database await ex.Entries.Single().ReloadAsync(); await LoadAsync(Id); } } afterSaveAction(); }
public async Task AddCoffeeVideoAsync() { try { var dialogData = await _addCoffeeVideoDialogService.ShowDialogAsync(); if (dialogData.DialogResultIsOk) { StartLoading($"Uploading your video {dialogData.BlobName}"); var cloudBlockBlob = await _coffeeVideoStorage.UploadVideoAsync( dialogData.BlobByteArray, dialogData.BlobName); var coffeeVideoViewModel = new CoffeeVideoViewModel(cloudBlockBlob); CoffeeVideos.Add(coffeeVideoViewModel); SelectedCoffeeVideo = coffeeVideoViewModel; } } catch (Exception ex) { await _messageDialogService.ShowInfoDialogAsync(ex.Message, "Error"); } finally { StopLoading(); } }
private async void OnOpenDetailView(OpenDetailViewEventArgs args) { var detailViewModel = DetailViewModels.SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); if (detailViewModel == null) { detailViewModel = _detailViewModelCreator[args.ViewModelName]; try { await detailViewModel.LoadAsync(args.Id); } catch (Exception ex) { await _messageDialogService.ShowInfoDialogAsync("Could not load the entity. It was deleted by another user" + "in the meantime. The navigation is refreshed for you."); await NavigationViewModel.LoadAsync(); return; } await detailViewModel.LoadAsync(args.Id); DetailViewModels.Add(detailViewModel); } SelectedDetailViewModel = detailViewModel; }
private async void OnOpenDetailView(OpenDetailViewEventArgs args) { var detailViewModel = DetailViewModels.SingleOrDefault(x => x.Id == args.Id && x.GetType().Name == args.ViewModelName); if (detailViewModel == null) { detailViewModel = _detailViewModelFactory.GetDetailViewModel(args.ViewModelName); try { await detailViewModel.LoadAsync(args.Id); } catch { await _messageDialogService.ShowInfoDialogAsync("Could not load the entity, " + "maybe it was deleted in the meantime by another user." + "The navigation is refreshed of you."); await NavigationViewModel.LoadAsync(); return; } DetailViewModels.Add(detailViewModel); } SelectedDetailViewModel = detailViewModel; }
private async void OnOpenDetailView(OpenDetailViewEventArgs args) { var detailViewModel = DetailViewModels .SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); if (detailViewModel == null) { detailViewModel = _detailViewModelCreator[args.ViewModelName]; try { await detailViewModel.LoadAsync(args.Id); } catch (Exception e) { await _messageDialogService.ShowInfoDialogAsync(e.Message); await NavigationViewModel.LoadAsync(); return; } DetailViewModels.Add(detailViewModel); } SelectedDetailViewModel = detailViewModel; }
private async void OnFinish() { try { IsLoad = true; await _blRouter.SaveGoal(Goal); IsLoad = false; await _messageDialogService.ShowInfoDialogAsync("The Goal is Saved "); _eventAggregator.GetEvent <BE.Events.GoalsIsUpdate>().Publish(); } catch (Exception e) { await _messageDialogService.ShowInfoDialogAsync("Error The Goal not Save Please contact the administrator"); IsLoad = false; } }
private async void OnFilterExecuteAsync() { try { await LoadAsync(Id, true); } catch (Exception ex) { await MessageDialogService.ShowInfoDialogAsync(ex.InnerException.ToString()); } }
private async void OnOpenDetailDriveView(OpenSearchDetailDriveViewEventArgs args) { IDetailViewModel detailViewModel = SearchDetailViewModels .SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); if (detailViewModel == null) { //TODO: Разобраться что куда Изменить алгоритм поиска detailViewModel = _searchDetailViewModelCreator[args.ViewModelName]; //; //SearchNavigationViewModel.SearchResult try { await detailViewModel.LoadAsync(args.Id); } catch { await _messageDialogService.ShowInfoDialogAsync("Info"); await SearchNavigationViewModel.LoadAsync(); return; } try { App.Current.Dispatcher.Invoke((Action) delegate // <--- HERE { SearchDetailViewModels.Add(detailViewModel); }); } catch (Exception e) { var x = e.Message; return; } } SelectedSearchDetailViewModel = detailViewModel; }
public async Task LoadCoffeeVideosAsync() { StartLoading("We're loading the videos for you"); try { var cloudBlockBlobs = await _coffeeVideoStorage.ListVideoBlobsAsync(Prefix); CoffeeVideos.Clear(); foreach (var cloudBlockBlob in cloudBlockBlobs) { CoffeeVideos.Add(_coffeeVideoViewModelCreator(cloudBlockBlob)); } } catch (Exception ex) { await _messageDialogService.ShowInfoDialogAsync(ex.Message, "Error"); } finally { StopLoading(); } }
public async Task DownloadVideoToFileAsync() { try { var storageFile = await _filePickerDialogService.ShowMp4FileSaveDialogAsync(BlobName); if (storageFile != null) { _mainViewModel.StartLoading($"Downloading your video {BlobName}"); using (var streamToWrite = await storageFile.OpenStreamForWriteAsync()) { await _coffeeVideoStorage.DownloadVideoAsync(_cloudBlockBlob, streamToWrite); } } } catch (Exception ex) { await _messageDialogService.ShowInfoDialogAsync(ex.Message, "Error"); } finally { _mainViewModel.StopLoading(); } }
/*public IFriendDetailViewModel FriendDetailViewModel { get; }*/ // We don`t need set becouse we setup property directly into ctor, we bind it to friendView // WE DON`T NEED THIS IN MainViewModel //public ObservableCollection<Friend> Friends { get; set; } //public Friend SelectedFriend //{ // get { return _selectedFriend; } // set // { // _selectedFriend = value; // OnPropertyChanged(); // rise event handler; property name if automaticly passed from compiler via atribut in the method // } //} // This method is called whenever user click item in navigation // If no one detailViewModel exist one is created by if statement private async void OnOpenDetailView(OpenDetailViewEventArgs args) { // args.Id contain Id of view that is clicked var detailViewModel = DetailViewModels .SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); // If ViewModel did not exist in observable collection if (detailViewModel == null) { detailViewModel = _detailViewModelCreator[args.ViewModelName]; try { await detailViewModel.LoadAsync(args.Id); } catch { await _messageDialogService.ShowInfoDialogAsync("Could not load the entity maybe it was deleted in the meantime by another user. The navigation is refreshed for you."); await NavigationViewModel.LoadAsync(); return; } DetailViewModels.Add(detailViewModel); } // Logic if user change something and navigate from current detailView //if (SelectedDetailViewModel != null && SelectedDetailViewModel.HasChanges) //{ // var result = _messageDialogService.ShowOkCancelDialog("You've made changes. Navigate away?", "Question"); // if (result == MessageDialogResult.Cancel) // { // return; // } //} //switch (args.ViewModelName) //{ // case nameof(FriendDetailViewModel): // DetailViewModel = _friendDetailViewModelCreator(); // break; // case nameof(MeetingDetailViewModel): // DetailViewModel = _meetingDetailViewModelCreator(); // break; // default: // throw new Exception($"ViewModel {args.ViewModelName} not mapped"); //} SelectedDetailViewModel = detailViewModel; }
private async void RemoveItemFromEntityCollection(RemoveEntityCollectionItem action, int CollectionKey) { var saveRet = action(ArchiveEntity.ArchiveEntityKey, CollectionKey); if (!saveRet.Success) { var msg = string.Format("Во время сохранения записи {0}{2} возникла исключительная ситуация{2} {1}" , ArchiveEntity.Title, saveRet.Messages.FirstOrDefault(), Environment.NewLine); AppLogger.SetLog(msg, System.Diagnostics.EventLogEntryType.Error); await _messageDialogService.ShowInfoDialogAsync(msg); } _eventAggregator.GetEvent <FileOnDriveSavedEvent>().Publish(ArchiveEntity.Model); InvalidateCommands(); }
protected override async void OnDeleteExecute() { if (await _friendRepository.HasMeetingsAsync(Friend.Id)) { await _messageDialogService.ShowInfoDialogAsync($"{Friend.FirstName} {Friend.LastName} can't be deleted, as this friend is part of at least one meeting"); return; } var result = await _messageDialogService.ShowOkCancelDialogAsync($"Do you really want to delete the friend {Friend.FirstName} {Friend.LastName}?", "Question"); if (result == MessageDialogResult.OK) { _friendRepository.Remove(Friend.Model); await _friendRepository.SaveAsync(); RaiseDetailDeletedEvent(Friend.Id); } }
protected async Task SaveWithOptimisticConcurrencyAsync(Func <Task> saveFunc, Action afterSaveAction) { try { await saveFunc(); } catch (DbUpdateConcurrencyException ex) { var databaseValues = ex.Entries.Single().GetDatabaseValues(); if (databaseValues == null) { await MessageDialogService.ShowInfoDialogAsync( "Данные были удалены другим пользователем!"); RaiseDetailDeletedEvent(Id); return; } var result = await MessageDialogService.ShowOkCancelDialogAsync( "Данные были изменены другим пользователем." + "Нажмите Ок чтобы все равно сохранить ваши изменения," + "нажмите Cancel, чтобы перезагрузить данные из базы данных.", "Внимание!"); if (result == MessageDialogResult.Ok) { var entry = ex.Entries.Single(); entry.OriginalValues.SetValues(entry.GetDatabaseValues()); await saveFunc(); } else { await ex.Entries.Single().ReloadAsync(); await LoadAsync(Id); } }; afterSaveAction(); }
private async void OnOpenDetailView(OpenDetailViewEventArgs args) { //If you don't use a tabbed view //if (SelectedDetailViewModel!=null && SelectedDetailViewModel.HasChanges) //{ // var result = _messageDialogService.ShowOkCancelDialog("You've made changes. Navigate away", "Question"); // if (result== MessageDialogResult.Cancel) // { // return; // } //} var detailViewModel = DetailViewModels.SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); if (detailViewModel == null) { //no tab is open detailViewModel = _detailViewModelCreator[args.ViewModelName]; try { await detailViewModel.LoadAsync(args.Id); } catch (Exception) { await _messageDialogService.ShowInfoDialogAsync("Could not load the entity, " + "maybe it was deleted in the meantime by another user. " + "The navigation is refreshed for you"); await NavigationViewModel.LoadAsync(); return; } DetailViewModels.Add(detailViewModel); } SelectedDetailViewModel = detailViewModel; }
protected async Task SaveWithOptimisticConcurrencyAsync(Func <Task> saveFunc, Action afterSaveAction) { try { await saveFunc(); } catch (DbUpdateConcurrencyException ex) { var databaseValues = ex.Entries.Single().GetDatabaseValues(); if (databaseValues == null) { await MessageDialogService.ShowInfoDialogAsync("Запись была удалена другим пользователем", "АХТУНГ"); RaiseDetailDeletedEvent(Id); return; } var result = await MessageDialogService.ShowOkCandelDialogAsync("Запись была изменена " + ".Нажмите ок чтобы сохранить изменения, нажмите Сancel " + "чтобы перезагрузить значение.", "Вопрос"); if (result == MessageDialogResult.OK) { var entry = ex.Entries.Single(); entry.OriginalValues.SetValues(entry.GetDatabaseValues()); await saveFunc(); } else { await ex.Entries.Single().ReloadAsync(); await LoadAsync(Id); } } afterSaveAction(); }
protected async Task SaveWithOptimisticConcurrencyAsync(Func <Task> saveFunc, Action afterSaveAction) { try { await saveFunc(); } catch (DbUpdateConcurrencyException ex) //handle the concurrency exception { var databaseValues = ex.Entries.Single().GetDatabaseValues(); if (databaseValues == null) { await MessageDialogService.ShowInfoDialogAsync("Записът вече е изтрит от друг потребител."); RaiseDetailDeletedEvent(Id); return; } var result = await MessageDialogService.ShowOkCancelDialogAsync("Записът вече е променен от някой друг. Натиснете OK, за да запазите вашите промени" + ", натиснете Cancel за да презаредите записа от базата данни.", "Въпрос"); if (result == MessageDialogResult.OK) { //Update the original values with database-values var entry = ex.Entries.Single(); entry.OriginalValues.SetValues(entry.GetDatabaseValues()); await saveFunc(); } else { //Reload entity from the database await ex.Entries.Single().ReloadAsync(); await LoadAsync(Id); } }; afterSaveAction(); }