Exemplo n.º 1
0
 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("Ошибка");
     }
 }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 4
0
        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;
        }
Exemplo n.º 5
0
        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;
        }
Exemplo n.º 6
0
        /// <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];
            }
        }
Exemplo n.º 7
0
        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();
        }
Exemplo n.º 8
0
        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();
            }
        }
Exemplo n.º 9
0
        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;
        }
Exemplo n.º 10
0
        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;
        }
Exemplo n.º 11
0
        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;
            }
        }
Exemplo n.º 13
0
 private async void OnFilterExecuteAsync()
 {
     try
     {
         await LoadAsync(Id, true);
     }
     catch (Exception ex)
     {
         await MessageDialogService.ShowInfoDialogAsync(ex.InnerException.ToString());
     }
 }
Exemplo n.º 14
0
        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;
        }
Exemplo n.º 15
0
        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();
            }
        }
Exemplo n.º 17
0
        /*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;
        }
Exemplo n.º 18
0
        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);
            }
        }
Exemplo n.º 20
0
        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();
        }
Exemplo n.º 21
0
        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;
        }
Exemplo n.º 22
0
        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();
        }
Exemplo n.º 23
0
        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();
        }